AI-Ascension
Architecture

Six tiers, read from the bottom up.

The runtime topology is a proposal. What exists today at each tier is an in-memory seam with deterministic tests; no tier is connected to a live neighbour. The host keeps authority throughout.

proposed topology · confirmed per-tier seams, in memory · unverified runtime, host, game

Topologybottom to top

Runtime topology

Runtime topology, bottom to top Six nodes stacked vertically: game host at the bottom (authority), then sts2-game-mod, sts2-gateway, sts2-mcp-server, sts2-harness, and model/provider at the top. Arrows between nodes are labelled with what crosses. sts2-game-core and sts2-protocol sit beside the stack, not on the path. model / providerendpoint · none called today ModelRequest / ModelResponse (provider port) sts2-harnessepisodes · retry · record/replay · lineage tools/call sts2_get_state (JSON-RPC) sts2-mcp-serverone call → one gateway request GET /v1/instances/{id}/state + lease proof sts2-gatewaylease · epoch fence · fixed routes · limits forward via TransportPort (fake today) sts2-game-modbounded queue · ABI check · admission HostRequest on the main thread (fake host today) game hostauthority stays here · not connected authority beside the ascent (no runtime tier) sts2-game-coredomain · beside sts2-protocolmetadata · beside read bottom to top ↑

What crosses each arrow is source-derived from the repositories' README and ARCHITECTURE documents. Today every arrow ends at an injected fake; no two tiers run against each other.

Boundaries

Boundary table

RepositoryOwnsDoes not ownConfirmed todayUnverified
sts2-game-coreHost-independent domain: typed Identity/Generation/Phase/State/Action/Request; pure validate; policy rules with no I/OAny host, loader, HTTP, MCP, gateway, provider, save formatPure validate returning an accepted proposal or structured rejection; golden vectors reproducible ×64Any host, loader, HTTP, MCP, gateway, provider, save-format, or game-mechanics compatibility
sts2-game-modGame-process adapter: host port, bounded main-thread queue, dispatcher, versioned ABI descriptor, transport-free HTTP admission guard, composition seamA managed loader, a real host adapter, a route catalog, domain behavior, packagingQueue, dispatcher, ABI validation, admission guard; source-only .NET 9 ↔ Rust C-ABI experimentGame launched, loader discovered, host assembly stored, listener exposed, real main-thread mutation
sts2-gatewayIn-memory control plane: allocate/reconcile/renew/release/cleanup/expire/shutdown; one lease per instance with epoch fencing; fixed routes; byte limitsListener, process supervisor, game connection, auth at an external boundaryFencing (WrongInstance, Missing, Expired, WrongCaller, WrongSession, WrongLease, StaleEpoch); routes ReadOnly/Command/Receipt; body/response limits; fail-closed on process, readiness, transport faults; fresh lease epoch is 1Listener, process supervisor, game connection, auth at an external boundary, isolation under real concurrency, host compatibility, release
sts2-mcp-serverJSON-RPC framing; initialize/tools/list/tools/call; single tool sts2_get_stateGateway policy, game state, any transportMaps to exactly one gateway request GET /v1/instances/{id}/state with x-mcp-request-id/x-mcp-session-id; rejects malformed JSON (-32700), invalid params (-32602), unsupported capability (-32601) before gateway access; gateway Unauthorized → -32001Live MCP transport, gateway connection, game load, provider call, deployment
sts2-harnessPure coordinator ports (router, provider, record, replay, artifact); retry/idempotency; record/replay; artifact lineage; bounded shutdownAny provider, MCP or gateway exchange, game actionThe ports and seams above, against deterministic fakesProvider execution, MCP/gateway exchange, game action, replay fidelity vs a game, scoring, training, packaged runtime
sts2-protocolNeutral identity/correlation/lineage metadata; version/profile/digest descriptors; lifecycle/deadline metadata; error envelope; manifestAny transport, host, gateway, MCP, model, storage, runtimeSchema + golden fixtures + conformance testAny transport, host, gateway, MCP, model, storage, or runtime behavior

Wording follows the frozen facts ledger's claim ceilings; nothing stronger appears on any public surface.

Definitions

Four terms

Lease
The gateway's record that one caller, in one session, currently holds one instance. It carries an instance id, caller id, session id, lease id, an epoch, and an expiry tick. A forward request must present a proof of that lease.
Epoch fencing
Each lease has an epoch that starts at 1 and rises whenever the lease is renewed or replaced. A request whose proof carries an older epoch is denied as StaleEpoch, before any transport call. A proof naming a different instance is denied as WrongInstance. The fence runs first; the transport never sees a fenced request.
Fixed route
A forward names one of three routes — ReadOnly, Command, Receipt — rather than an arbitrary path. There is no route catalog to extend at runtime.
Fail closed
When a process, readiness, or transport port reports a fault, the gateway refuses further work on that instance instead of guessing. Shutdown closes admission. Denial is the default outcome of doubt.

All four are shown in the proof replay and mapped to tests on the evidence page.