{
  "what_this_is": "The manifest behind /experiments/. One experiment, one folder, one workflow, one visualisation — each with its own generator (or a shared engine driven by its own scenario.json, per brief v0.33.68), its own gates, and a bench entry carrying a does_not_prove. The hub page is generated from this file so the listing cannot drift from the folders.",
  "rules": [
    "Every word derived at build time from the files the pipeline runs on; no typed counts.",
    "Real and synthetic never blend — a surface is derived from real artefacts, or it carries the SYNTHETIC marker beside every value.",
    "Every visual claim has a gate comparing the drawing to the declaration.",
    "Genre, not work: a genre's conventions are for using; a specific game's art, names or wording are not.",
    "Render it, screenshot it, read the screenshot before shipping."
  ],
  "experiments": [
    { "id": "the-room",
      "title": "The chain room",
      "workflow": "the full chain, reality → monitoring, with the library/instance boundary drawn on the floor",
      "visualisation": "a point-and-click room: eight desks, four verbs, a work item that travels",
      "honesty": "left half real artefacts; right half SYNTHETIC, marked on every surface",
      "brief": "v0.33.66" },
    { "id": "the-table",
      "title": "The table",
      "workflow": "actions resolving against grants and mandates, and the consequences — forward as replay, backward as audit",
      "visualisation": "a card table: six suits, players that include the systems, four turns of a real incident",
      "honesty": "one hundred per cent real — the estate's own 26 August incident, from the artefacts it left behind, with the enforcement tool re-run at build time",
      "brief": "v0.33.67" },
    { "id": "push-to-github",
      "title": "Push to GitHub",
      "workflow": "the grant chain behind a hosted agent changing a repository, and the three places a soft mandate could live",
      "visualisation": "a scenario world rendered by one JSON-driven engine: players, a grant chain, a capability deck with one micro-animation per capability kind",
      "honesty": "one hundred per cent real — the twin is this session's own environment, measured from inside; every card is a node in that library entry, gated one-to-one",
      "brief": "v0.33.68" },
    { "id": "the-deploy",
      "title": "The Deploy",
      "workflow": "the environment a permitted push lands in — a CI runner with no agent, no hooks, and one platform-enforced grant",
      "visualisation": "the same engine, a different scenario.json: nothing else changed, which is the claim the pair exists to prove",
      "honesty": "one hundred per cent real — the twin is the estate's CI runner, measured from inside by the same tool on the same day",
      "brief": "v0.33.68" },
    { "id": "the-control-room",
      "title": "The control room",
      "workflow": "both worlds at once, as an operator sees a plant — state at a glance, and the 26 August incident replayable on a sequence-of-events log",
      "visualisation": "a SCADA board with a game HUD: mimic diagrams, annunciator tiles lit by tier, faceplates on click, transport controls over the replay",
      "honesty": "one hundred per cent real, and zero new data — a second renderer over the same scenario.json worlds, every verdict re-run through mandate.py at build, mode chip pinned to REPLAY",
      "brief": "v0.33.69" }
  ]
}
