Skip to content

W88 — The Simulation Kind Nobody Outside the Package Can Use #369

Description

@The-Running-Dev

W88 — The Simulation Kind Nobody Outside the Package Can Use

Lets a content repository actually write Life in the Fast Lane, and lets a host render it. Today the simulation kind is one you can register and cannot author: the package exports simulationKind and nothing else about it — not the campaign builder, not the source types it takes, not the campaign, state, view or outcome types a host must compile against.

Done when

  • W88.1 buildSimulationCampaign and every *Source type in src/engine/src/kinds/simulation/source.ts are exported from @the-running-dev/game-engine/authoring; SimulationCampaign, SimulationKindState, SimulationView, PublicWorldState, SimulationOutcome, ActionType, GameAction and WeeklyActionPlan are exported from the package root.
  • W88.2 consumer-smoke builds a simulation campaign from source through the subpath and types a SimulationView through the root, resolving both from the packed tarball. Deleting one of the new exports fails the smoke build, verified by deleting one.
  • W88.3 The subpath stays closed against published content: W74.7's enumeration check passes with the new names in its committed list, and no stable-life* or bulgaria-stable-life builder or campaign id becomes reachable through either surface.
  • W88.4 §19's export sentence names the simulation builder and source types and states the author-time/runtime split this unit applies.
  • W88.5 A test asserts the root exports no simulation authoring value.
  • W88.6 npm run typecheck, npm run lint and npm test pass from src/engine/; install:engine, build and smoke pass from consumer-smoke/; ./build/Test-Documentation.ps1 passes.

Agent instructions

Run /slice W88.

  • Scope and criteria: design/30-slices.md § W88 @ 32b1616
  • Signatures: design/20-contract.md §19
  • Out of scope here: moving buildWorldGraphCampaign or the story-graph types to match; exporting any campaign; the contract prerequisites (P1-P7) listed above W88 in design/30-slices.md

Stop conditions and procedure: .claude/commands/slice.md. Not restated here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    sliceA W-numbered vertical delivery slice from design/30-slices.md

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions