The Docs
One deterministic core. Three kinds of game. Every new game is content, not code — that's the bet, and the front page makes the case for it.
The Game Engine is a deterministic, game-agnostic narrative-game platform. This is its documentation, in the order the sidebar presents it. The project's front page — what it is, where the code lives — is the site root.
Orientation
Start here. Two documents, and between them the shape of the whole thing.
| Document | Holds |
|---|---|
| Vision | Why the platform exists; the core/kind/campaign model |
| Architecture | Every settled architecture decision, with rationale — the contract (decisions) |
Contracts
What the engine is, as types. Each is scoped deliberately and cross-references the other by section number.
| Document | Holds |
|---|---|
| The Core | The core as types: the Kind interface, the GameState envelope, the engine API, projection, validation — the contract (types) |
| Story-Graph Kind | The flagship kind: nodes, choices, typed variables, consequences, endings, turn and settle semantics |
| Observability | Logging and tracing: the operational event channel, and the rules that keep it from breaking determinism |
| Extensibility | Where the engine can be extended and by whom: the ports a host supplies, and why the determinism boundary is the trust boundary |
| Replay | The regression oracle: replaying committed fixtures across engine versions, and what "the same game" means when the bytes may differ |
| Session Capture | Turning a played session into a fixture: what may be taken from a person, what is refused, and how long it lives |
| Clients | The client contract: what a client may and may not do, and the API coverage checklist that verifies it |
| Simulation Kind | The second kind, expressed against the Kind seam: the week as a turn, plan actions, and what its state must not duplicate |
| Content Packs | Resolving many packs into one frozen registry — merge, override, dependency — and the identity that keeps a game reproducible |
| World-Graph Kind | The third kind: a tick batch as a turn, spatial verbs, and the batch-invariance property that keeps presentation speed out of the results |
The Core comes first deliberately: 04 implements 03 as types, and the core is the
shorter way in. The two drift apart more easily than anything else here — an edit to one that
is not mirrored in the other is this project's most common defect.
Delivery
What ships first, in what order, and what is still undecided.
| Document | Holds |
|---|---|
| MVP | The smallest slice that proves the platform, and its Definition of Done |
| TODO | The MVP as ordered units of work (W0–W19), with contract references and done-criteria |
| Open Questions | Living register of unknowns and deferred decisions; §1 is a decision log |
Working on It
Not specifications — how to build, run, and check what the specifications describe.
| Document | Holds |
|---|---|
| Engine Package | The npm package: layout, commands, the determinism guard |
| Documentation Site | Previewing this site, what is generated, and the two link checks |