Skip to content

Architecture and ownership ​

GAOS surrounds a product-owned deterministic reducer with reusable game, agent, session, evidence, and verification infrastructure.

text
                 product content and policy
                            │
                product-owned TickReducer
                            │
       ┌──────────────┬─────┴─────┬──────────────┐
       │              │           │              │
   human play    agent play   sessions      run evidence
                                              │
                                    historical verifier

The reducer is not supplied by GAOS. The SDK defines the contract through which a product's rules reach each consumer.

Ownership boundary ​

Product ownsGAOS owns
Reducer and semantic adapterReducer, environment, session, replay, and verifier contracts
Characters, cards, terrain, levels, objectives, and game modesProduct-neutral mechanisms and deterministic ordering
Legal-action and observation meaningConcrete-action expansion and seat-scoped environment lifecycle
Tasks, rewards, score meaning, held-out content, and capability claimsTranscript, evidence, signature, and verification formats
Rendering, hosting, persistence, matchmaking, identity, and anti-cheat policyPrepared session transitions, canonical inputs, and reconnect evidence
Whether and how long historical verifier code is publishedVerifier-kit export, identity, resolution, cache, and execution interfaces
Which verifier digests are trustedIntegrity and authorization result reporting

The rule is simple: the product defines meaning; GAOS standardizes reusable behavior and evidence around it.

One reducer, several consumers ​

TickReducer<TLevel, TState, TView> provides deterministic operations:

ts
interface TickReducer<TLevel, TState, TView extends SessionView> {
  init(level: TLevel, seed: number): TState;
  advance(state: TState, inputs: readonly SubmittedAction[]): TState;
  view(state: TState): TView;
  viewFor?(state: TState, seat: string): TView;
}

The same adapter can power:

  • a renderer or hosted API;
  • AgentEnvironment and MultiAgentEnvironment;
  • deterministic solvers and regression tests;
  • authoritative SessionKernel transitions; and
  • replay re-simulation.

Products may compose GAOS mechanisms inside advance, but the product still owns the final reducer and its rules.

Verifiable evidence ​

GAOS records canonical reducer inputs and results in portable replay artifacts. Signed submissions add seat-key authorship and per-seat chain evidence. A verifier then resolves the appropriate historical reducer and semantic adapter, re-simulates the run, and reports separate integrity, authorization, semantic, and adoption facts.

The replay cannot authorize the verifier it names. A benchmark manifest, product catalog, or verifier-owned allowlist obtained independently must pin the accepted digest.

v0.25 supports both directly supplied pinned adapters and product-owned verifier kits: content-addressed packages exported by the product and handled through GAOS packing, inspection, discovery, caching, and restricted-execution contracts.

Package entry points ​

Entry pointPurpose
package rootBrowser-safe GAOS protocol and product-neutral SessionClient
./protocolProduct-neutral tick protocol
./clientProduct-neutral hosted-session client, unified handles, attachment receipts, and finalization
./engineMechanisms, reducers, agents, solvers, and replay
./sessionAuthoritative transitions and evidence capture
./session-hostTransport-neutral durable host lifecycle
./ecosystemHost conformance and presentation bridge contracts
./seat-controlStable-seat authority and controller epochs
./controlBehavior-tree, human-input, and agent-input control sources
./room-agentMultiple conversational room agents, audience input, rules manifests, and optional actor/seat action proposals
./room-agent-runtimeProvider-neutral final-text routing, authenticated disclosure, channel-isolated provider work and transcripts, room-global speech arbitration, captions, and reconnect state
./room-interactionExplicit room messages/events, privacy-bounded routing, agent services, committed watchers, and deterministic audience votes
./presentation-cuesOrdered, retry-safe host-to-renderer cues with acknowledgement, replay repair, and emergency interruption
./benchmarkBenchmark manifests, session-backed execution, planning, bundles, and aggregation
./evidenceDynamic-control and external-attestation verification
./presentation-clientRetry-safe presentation state
./leaderboardNeutral leaderboard service boundaries
./verifier-kitNode-only verifier-kit packing, inspection, cache, and resolution
./container-verifier-runnerNode-only Docker/Podman restricted runner
./agentProvider-neutral and keyed model drivers plus the common session runner
./agent-cliMCP-capable CLI launch integration
Python SessionClientProduct-neutral hosted sessions with opaque observations and commands
Python replay and verification APIsPortable evidence exchange and verification

TypeScript contains the local mechanism engine and replay re-simulation. Python is the hosted and research integration surface; it does not duplicate the TypeScript reducer runtime.

The root and ./client entry points must remain browser- and edge-safe. Product adapters live with their products and depend on GAOS; GAOS never depends on a product. Zonoid owns its typed observations, matchmaking, leaderboards, convenience endpoints, and Python environment in the Zonoid repository.

Contract identity ​

GAOS uses three identity shapes:

Contract kindIdentity ruleExample
Standalone JSON schemaMajor version is embedded in schema; do not add a duplicate schemaVersiongaos.benchmark-manifest.v1
Serialized family with compatible minor versionsStable format plus formatVersiongaos.replay + 1.3
Negotiated wire protocolStable protocol plus protocolVersiongaos.ticks + 1.0

Every published JSON Schema uses https://yugao-gaos.github.io/GAOS-SDK/schemas/<filename> as its canonical $id. The documentation build publishes those exact source files at that location, and npm run architecture:check prevents identifier drift, dependency cycles, internal barrel imports, product leakage into the generic root, and Node built-ins entering the browser-safe surface.

Explore capabilities → · Read the mechanism reference → · Understand verification →

Game-as-a-Benchmark: one product reducer for human play, agent evaluation, and verifiable exact runs.