{
  "schema": "unitiqx.text-play.challenge-book.v1",
  "id": "matrix-arcade-31",
  "version": "1.0.0",
  "generated_utc": "2026-10-11T04:48:43.073Z",
  "canonical": "/commons/demos/matrix-arcade/rules.json",
  "title": "SPHYNX MATRIX ARCADE — 31 Text-Playable Missions",
  "purpose": "Make public games understandable and mentally playable without web interaction, credentials, account or paid AI calls.",
  "modes": [
    {
      "id": "actual-browser",
      "meaning": "Human or permitted browser automation interacts with the live game; actual browser progress can change."
    },
    {
      "id": "thought",
      "meaning": "Player imagines the state and proposes moves using text; no browser game progress is claimed."
    },
    {
      "id": "read-only-ai",
      "meaning": "AI reads this JSON and reasons about a mission, proposing and checking hypothetical actions without a write tool."
    },
    {
      "id": "visual",
      "meaning": "Player studies genuine public screenshots and descriptive state snippets."
    }
  ],
  "how_to_read": [
    "Choose a challenge by id (world:zero-based-stage, such as route:0).",
    "Read the narrative and rules, then consider a next legal action before seeing the solution.",
    "For route, circuit, cipher, pattern and balance, use the actual engine math to predict outcomes.",
    "For defense, only tactical strategy is simulated, not time-based physics.",
    "Compare with the separately published reference-solutions.json if you want a spoiler or verification.",
    "Never claim a browser level clear, human score, remote model invocation or VPS change from theoretical play."
  ],
  "source_of_truth": "Deterministic engine.js plus a separately labeled illustrative table-top defense vignette",
  "campaign_progress": "Real browser campaign: 30 standard missions plus 1 final = 31. Thought mode has a separate simulation-only tally.",
  "save_policy": "This public JSON contains no personal player data. Mindplay uses temporary client-side memory; it never writes to the server.",
  "reference_solutions": "/commons/demos/matrix-arcade/reference-solutions.json",
  "read_only_computer": "Every required resource can be obtained with ordinary GET or HEAD; no POST, remote credentials or private services.",
  "challenges": [
    {
      "id": "route:0",
      "world": "route",
      "stage": 1,
      "stage_name": "Ignition",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "A new signal emerges on the other side of a fractured data grid. Recover every lost core and escape before the path closes.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/route-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Plan a path that visits every K before E. Walls are impassable.",
      "principle": "A clear route is not enough: every required dependency must be collected.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Start at S. Write one character per move: N, E, S, W. Visit ALL K and finish at E. Failed wall moves do not advance. Coordinates start at x=0,y=0.",
      "action_schema": {
        "type": "move_plan",
        "format": "string",
        "alphabet": "NESW",
        "maximum_moves": 120
      },
      "board": [
        "S.....",
        ".##.#.",
        "...#K.",
        ".#....",
        "...#..",
        "K....E"
      ],
      "legend": {
        "S": "start (player)",
        "K": "uncollected required data core",
        "E": "exit (open only when every core is collected)",
        "#": "solid wall",
        ".": "open tile"
      },
      "initial_state": {
        "position": {
          "x": 0,
          "y": 0
        },
        "cores_collected": 0,
        "cores_total": 2,
        "moves": 0,
        "mission_complete": false
      },
      "win_condition": "All K visited and final position E"
    },
    {
      "id": "route:1",
      "world": "route",
      "stage": 2,
      "stage_name": "Calibration",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "An obstacle splits the route in two. Trace around the fault without abandoning either objective.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/route-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Plan a path that visits every K before E. Walls are impassable.",
      "principle": "Roadblocks force alternative approaches; map the feasible paths first.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Start at S. Write one character per move: N, E, S, W. Visit ALL K and finish at E. Failed wall moves do not advance. Coordinates start at x=0,y=0.",
      "action_schema": {
        "type": "move_plan",
        "format": "string",
        "alphabet": "NESW",
        "maximum_moves": 120
      },
      "board": [
        "S.#...",
        "..#K#.",
        "......",
        ".##.#.",
        ".K..#.",
        ".....E"
      ],
      "legend": {
        "S": "start (player)",
        "K": "uncollected required data core",
        "E": "exit (open only when every core is collected)",
        "#": "solid wall",
        ".": "open tile"
      },
      "initial_state": {
        "position": {
          "x": 0,
          "y": 0
        },
        "cores_collected": 0,
        "cores_total": 2,
        "moves": 0,
        "mission_complete": false
      },
      "win_condition": "All K visited and final position E"
    },
    {
      "id": "route:2",
      "world": "route",
      "stage": 3,
      "stage_name": "Interference",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "A deceptive corridor makes the shortest-looking route incomplete. Verify every dependency.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/route-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Plan a path that visits every K before E. Walls are impassable.",
      "principle": "The shortest-looking route may miss a required objective.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Start at S. Write one character per move: N, E, S, W. Visit ALL K and finish at E. Failed wall moves do not advance. Coordinates start at x=0,y=0.",
      "action_schema": {
        "type": "move_plan",
        "format": "string",
        "alphabet": "NESW",
        "maximum_moves": 120
      },
      "board": [
        "S..#..",
        "##.#K.",
        "......",
        ".##.##",
        "K.....",
        "...#.E"
      ],
      "legend": {
        "S": "start (player)",
        "K": "uncollected required data core",
        "E": "exit (open only when every core is collected)",
        "#": "solid wall",
        ".": "open tile"
      },
      "initial_state": {
        "position": {
          "x": 0,
          "y": 0
        },
        "cores_collected": 0,
        "cores_total": 2,
        "moves": 0,
        "mission_complete": false
      },
      "win_condition": "All K visited and final position E"
    },
    {
      "id": "route:3",
      "world": "route",
      "stage": 4,
      "stage_name": "Critical Path",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Your map is scarred by isolation barriers. Work backwards from the objective to find a safe path.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/route-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Plan a path that visits every K before E. Walls are impassable.",
      "principle": "Plan routes around the constraints you cannot change.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Start at S. Write one character per move: N, E, S, W. Visit ALL K and finish at E. Failed wall moves do not advance. Coordinates start at x=0,y=0.",
      "action_schema": {
        "type": "move_plan",
        "format": "string",
        "alphabet": "NESW",
        "maximum_moves": 120
      },
      "board": [
        "S.....",
        ".###..",
        ".K.#..",
        "...#..",
        ".##...",
        "....KE"
      ],
      "legend": {
        "S": "start (player)",
        "K": "uncollected required data core",
        "E": "exit (open only when every core is collected)",
        "#": "solid wall",
        ".": "open tile"
      },
      "initial_state": {
        "position": {
          "x": 0,
          "y": 0
        },
        "cores_collected": 0,
        "cores_total": 2,
        "moves": 0,
        "mission_complete": false
      },
      "win_condition": "All K visited and final position E"
    },
    {
      "id": "route:4",
      "world": "route",
      "stage": 5,
      "stage_name": "Master Protocol",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The final grid has no shortcut through its central walls. Recover all cores and navigate to extraction.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/route-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Plan a path that visits every K before E. Walls are impassable.",
      "principle": "A resilient system still reaches its goal when the direct line is blocked.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Start at S. Write one character per move: N, E, S, W. Visit ALL K and finish at E. Failed wall moves do not advance. Coordinates start at x=0,y=0.",
      "action_schema": {
        "type": "move_plan",
        "format": "string",
        "alphabet": "NESW",
        "maximum_moves": 120
      },
      "board": [
        "S..#..",
        ".#...K",
        ".#.#..",
        "...#..",
        ".K....",
        "...#.E"
      ],
      "legend": {
        "S": "start (player)",
        "K": "uncollected required data core",
        "E": "exit (open only when every core is collected)",
        "#": "solid wall",
        ".": "open tile"
      },
      "initial_state": {
        "position": {
          "x": 0,
          "y": 0
        },
        "cores_collected": 0,
        "cores_total": 2,
        "moves": 0,
        "mission_complete": false
      },
      "win_condition": "All K visited and final position E"
    },
    {
      "id": "circuit:0",
      "world": "circuit",
      "stage": 1,
      "stage_name": "Ignition",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The reactor is dark. Rotate the connectors to carry energy from the left terminal to the right.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/circuit-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Start at tile 5: SOURCE enters from the left edge. Every joined connector must point toward the other.",
      "principle": "Power flows only when two neighboring connections agree.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "4x4 grid. Tiles numbered 1–16 in reading order. Tap/click a tile to rotate its openings clockwise N→E→S→W. SOURCE arrives from left of tile 5. CORE exits right from tile 12.",
      "action_schema": {
        "type": "rotate_tile",
        "tile_range": "1..16",
        "turns": "0..3 clockwise"
      },
      "board": [
        {
          "tile": 1,
          "row": 1,
          "column": 1,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 2,
          "row": 1,
          "column": 2,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 3,
          "row": 1,
          "column": 3,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 4,
          "row": 1,
          "column": 4,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 5,
          "row": 2,
          "column": 1,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 6,
          "row": 2,
          "column": 2,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 7,
          "row": 2,
          "column": 3,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 8,
          "row": 2,
          "column": 4,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 9,
          "row": 3,
          "column": 1,
          "openings": [
            "N",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 10,
          "row": 3,
          "column": 2,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 11,
          "row": 3,
          "column": 3,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 12,
          "row": 3,
          "column": 4,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 13,
          "row": 4,
          "column": 1,
          "openings": [
            "E",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 14,
          "row": 4,
          "column": 2,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 15,
          "row": 4,
          "column": 3,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 16,
          "row": 4,
          "column": 4,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": false
        }
      ],
      "initial_state": {
        "powered_tiles": [],
        "reactor_lit": false
      },
      "win_condition": "A path of mutually connected tiles carries power from tile 5 to tile 12, and tile 12 opens east."
    },
    {
      "id": "circuit:1",
      "world": "circuit",
      "stage": 2,
      "stage_name": "Calibration",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "A broken branch diverts energy. Follow the working components, then repair each junction.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/circuit-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Start at tile 5: SOURCE enters from the left edge. Every joined connector must point toward the other.",
      "principle": "Local fixes can enable or disrupt the whole network.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "4x4 grid. Tiles numbered 1–16 in reading order. Tap/click a tile to rotate its openings clockwise N→E→S→W. SOURCE arrives from left of tile 5. CORE exits right from tile 12.",
      "action_schema": {
        "type": "rotate_tile",
        "tile_range": "1..16",
        "turns": "0..3 clockwise"
      },
      "board": [
        {
          "tile": 1,
          "row": 1,
          "column": 1,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 2,
          "row": 1,
          "column": 2,
          "openings": [
            "N",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 3,
          "row": 1,
          "column": 3,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 4,
          "row": 1,
          "column": 4,
          "openings": [
            "N",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 5,
          "row": 2,
          "column": 1,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 6,
          "row": 2,
          "column": 2,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 7,
          "row": 2,
          "column": 3,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 8,
          "row": 2,
          "column": 4,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 9,
          "row": 3,
          "column": 1,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 10,
          "row": 3,
          "column": 2,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 11,
          "row": 3,
          "column": 3,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 12,
          "row": 3,
          "column": 4,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 13,
          "row": 4,
          "column": 1,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 14,
          "row": 4,
          "column": 2,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 15,
          "row": 4,
          "column": 3,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 16,
          "row": 4,
          "column": 4,
          "openings": [
            "N",
            "W"
          ],
          "essential_to_example_solution": false
        }
      ],
      "initial_state": {
        "powered_tiles": [
          5,
          9,
          10,
          14
        ],
        "reactor_lit": false
      },
      "win_condition": "A path of mutually connected tiles carries power from tile 5 to tile 12, and tile 12 opens east."
    },
    {
      "id": "circuit:2",
      "world": "circuit",
      "stage": 3,
      "stage_name": "Interference",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Three-layer rerouting is needed. A correct tile alone cannot light an isolated component.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/circuit-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Start at tile 5: SOURCE enters from the left edge. Every joined connector must point toward the other.",
      "principle": "Trace faults from the source, not just the final output.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "4x4 grid. Tiles numbered 1–16 in reading order. Tap/click a tile to rotate its openings clockwise N→E→S→W. SOURCE arrives from left of tile 5. CORE exits right from tile 12.",
      "action_schema": {
        "type": "rotate_tile",
        "tile_range": "1..16",
        "turns": "0..3 clockwise"
      },
      "board": [
        {
          "tile": 1,
          "row": 1,
          "column": 1,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 2,
          "row": 1,
          "column": 2,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 3,
          "row": 1,
          "column": 3,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 4,
          "row": 1,
          "column": 4,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 5,
          "row": 2,
          "column": 1,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 6,
          "row": 2,
          "column": 2,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 7,
          "row": 2,
          "column": 3,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 8,
          "row": 2,
          "column": 4,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 9,
          "row": 3,
          "column": 1,
          "openings": [
            "E",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 10,
          "row": 3,
          "column": 2,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 11,
          "row": 3,
          "column": 3,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 12,
          "row": 3,
          "column": 4,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 13,
          "row": 4,
          "column": 1,
          "openings": [
            "N",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 14,
          "row": 4,
          "column": 2,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 15,
          "row": 4,
          "column": 3,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 16,
          "row": 4,
          "column": 4,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": false
        }
      ],
      "initial_state": {
        "powered_tiles": [
          5
        ],
        "reactor_lit": false
      },
      "win_condition": "A path of mutually connected tiles carries power from tile 5 to tile 12, and tile 12 opens east."
    },
    {
      "id": "circuit:3",
      "world": "circuit",
      "stage": 4,
      "stage_name": "Critical Path",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "An unconventional detour bypasses a faulty junction. Trace actual neighbor connections.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/circuit-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Start at tile 5: SOURCE enters from the left edge. Every joined connector must point toward the other.",
      "principle": "Inspect junctions and turns: direction is part of the design.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "4x4 grid. Tiles numbered 1–16 in reading order. Tap/click a tile to rotate its openings clockwise N→E→S→W. SOURCE arrives from left of tile 5. CORE exits right from tile 12.",
      "action_schema": {
        "type": "rotate_tile",
        "tile_range": "1..16",
        "turns": "0..3 clockwise"
      },
      "board": [
        {
          "tile": 1,
          "row": 1,
          "column": 1,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 2,
          "row": 1,
          "column": 2,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 3,
          "row": 1,
          "column": 3,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 4,
          "row": 1,
          "column": 4,
          "openings": [
            "E",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 5,
          "row": 2,
          "column": 1,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 6,
          "row": 2,
          "column": 2,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 7,
          "row": 2,
          "column": 3,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 8,
          "row": 2,
          "column": 4,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 9,
          "row": 3,
          "column": 1,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 10,
          "row": 3,
          "column": 2,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 11,
          "row": 3,
          "column": 3,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 12,
          "row": 3,
          "column": 4,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 13,
          "row": 4,
          "column": 1,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 14,
          "row": 4,
          "column": 2,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 15,
          "row": 4,
          "column": 3,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 16,
          "row": 4,
          "column": 4,
          "openings": [
            "E",
            "S"
          ],
          "essential_to_example_solution": false
        }
      ],
      "initial_state": {
        "powered_tiles": [
          5
        ],
        "reactor_lit": false
      },
      "win_condition": "A path of mutually connected tiles carries power from tile 5 to tile 12, and tile 12 opens east."
    },
    {
      "id": "circuit:4",
      "world": "circuit",
      "stage": 5,
      "stage_name": "Master Protocol",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The master conduit winds through eleven positions. Restore continuous connections without assuming direct routes.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/circuit-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Start at tile 5: SOURCE enters from the left edge. Every joined connector must point toward the other.",
      "principle": "Complex systems become tractable when broken into connected components.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "4x4 grid. Tiles numbered 1–16 in reading order. Tap/click a tile to rotate its openings clockwise N→E→S→W. SOURCE arrives from left of tile 5. CORE exits right from tile 12.",
      "action_schema": {
        "type": "rotate_tile",
        "tile_range": "1..16",
        "turns": "0..3 clockwise"
      },
      "board": [
        {
          "tile": 1,
          "row": 1,
          "column": 1,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 2,
          "row": 1,
          "column": 2,
          "openings": [
            "E",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 3,
          "row": 1,
          "column": 3,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 4,
          "row": 1,
          "column": 4,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 5,
          "row": 2,
          "column": 1,
          "openings": [
            "N",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 6,
          "row": 2,
          "column": 2,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 7,
          "row": 2,
          "column": 3,
          "openings": [
            "N",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 8,
          "row": 2,
          "column": 4,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 9,
          "row": 3,
          "column": 1,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 10,
          "row": 3,
          "column": 2,
          "openings": [
            "N",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 11,
          "row": 3,
          "column": 3,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 12,
          "row": 3,
          "column": 4,
          "openings": [
            "S",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 13,
          "row": 4,
          "column": 1,
          "openings": [
            "E",
            "S"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 14,
          "row": 4,
          "column": 2,
          "openings": [
            "N",
            "W"
          ],
          "essential_to_example_solution": true
        },
        {
          "tile": 15,
          "row": 4,
          "column": 3,
          "openings": [
            "E",
            "W"
          ],
          "essential_to_example_solution": false
        },
        {
          "tile": 16,
          "row": 4,
          "column": 4,
          "openings": [
            "N",
            "E"
          ],
          "essential_to_example_solution": false
        }
      ],
      "initial_state": {
        "powered_tiles": [
          5
        ],
        "reactor_lit": false
      },
      "win_condition": "A path of mutually connected tiles carries power from tile 5 to tile 12, and tile 12 opens east."
    },
    {
      "id": "cipher:0",
      "world": "cipher",
      "stage": 1,
      "stage_name": "Ignition",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Your archive vault is sealed. Use a three-digit deduction to discover a code from digits zero through five.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/cipher-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Try unique digits and use exact versus misplaced feedback to rule out possibilities.",
      "principle": "Feedback eliminates hypotheses; each guess should teach you something.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Guess three different digits, each between 0 and 5. Exact = right digit and slot. Misplaced = digit occurs in code but in another slot. Use feedback after each guess.",
      "action_schema": {
        "type": "guess",
        "pattern": "^[0-5]{3}$",
        "no_repeated_digits": true
      },
      "initial_state": {
        "attempts": 0,
        "history": []
      },
      "feedback_example": {
        "action": "012",
        "exact": 0,
        "misplaced": 2,
        "origin": "engine-generated feedback"
      },
      "win_condition": "exact = 3"
    },
    {
      "id": "cipher:1",
      "world": "cipher",
      "stage": 2,
      "stage_name": "Calibration",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The next vault uses the same unique-digit rule. Each guess reveals an evidence trail.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/cipher-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Try unique digits and use exact versus misplaced feedback to rule out possibilities.",
      "principle": "Separate what is correct from what is merely present.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Guess three different digits, each between 0 and 5. Exact = right digit and slot. Misplaced = digit occurs in code but in another slot. Use feedback after each guess.",
      "action_schema": {
        "type": "guess",
        "pattern": "^[0-5]{3}$",
        "no_repeated_digits": true
      },
      "initial_state": {
        "attempts": 0,
        "history": []
      },
      "feedback_example": {
        "action": "012",
        "exact": 0,
        "misplaced": 1,
        "origin": "engine-generated feedback"
      },
      "win_condition": "exact = 3"
    },
    {
      "id": "cipher:2",
      "world": "cipher",
      "stage": 3,
      "stage_name": "Interference",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Fragments of a secret remain in the wrong positions. Distinguish correct symbols from their placement.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/cipher-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Try unique digits and use exact versus misplaced feedback to rule out possibilities.",
      "principle": "Repeated evidence narrows the space of possible solutions.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Guess three different digits, each between 0 and 5. Exact = right digit and slot. Misplaced = digit occurs in code but in another slot. Use feedback after each guess.",
      "action_schema": {
        "type": "guess",
        "pattern": "^[0-5]{3}$",
        "no_repeated_digits": true
      },
      "initial_state": {
        "attempts": 0,
        "history": []
      },
      "feedback_example": {
        "action": "012",
        "exact": 1,
        "misplaced": 1,
        "origin": "engine-generated feedback"
      },
      "win_condition": "exact = 3"
    },
    {
      "id": "cipher:3",
      "world": "cipher",
      "stage": 4,
      "stage_name": "Critical Path",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "A reversed-looking code tempts random guessing. Test clear hypotheses instead.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/cipher-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Try unique digits and use exact versus misplaced feedback to rule out possibilities.",
      "principle": "Change one assumption at a time to isolate causes.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Guess three different digits, each between 0 and 5. Exact = right digit and slot. Misplaced = digit occurs in code but in another slot. Use feedback after each guess.",
      "action_schema": {
        "type": "guess",
        "pattern": "^[0-5]{3}$",
        "no_repeated_digits": true
      },
      "initial_state": {
        "attempts": 0,
        "history": []
      },
      "feedback_example": {
        "action": "012",
        "exact": 0,
        "misplaced": 1,
        "origin": "engine-generated feedback"
      },
      "win_condition": "exact = 3"
    },
    {
      "id": "cipher:4",
      "world": "cipher",
      "stage": 5,
      "stage_name": "Master Protocol",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The master key rewards a methodical elimination plan rather than brute-force intuition.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/cipher-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Try unique digits and use exact versus misplaced feedback to rule out possibilities.",
      "principle": "A methodical deduction process beats random guessing.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Guess three different digits, each between 0 and 5. Exact = right digit and slot. Misplaced = digit occurs in code but in another slot. Use feedback after each guess.",
      "action_schema": {
        "type": "guess",
        "pattern": "^[0-5]{3}$",
        "no_repeated_digits": true
      },
      "initial_state": {
        "attempts": 0,
        "history": []
      },
      "feedback_example": {
        "action": "012",
        "exact": 0,
        "misplaced": 1,
        "origin": "engine-generated feedback"
      },
      "win_condition": "exact = 3"
    },
    {
      "id": "pattern:0",
      "world": "pattern",
      "stage": 1,
      "stage_name": "Ignition",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "A sensor reports a number sequence. Identify its mechanism and predict the next event.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/pattern-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Each number scales by the same factor.",
      "principle": "Multiply by 2 every step: 2, 4, 8, 16, 32.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose exactly one of the four possible next numbers. Think about ratios, differences, squares and recurrence.",
      "action_schema": {
        "type": "choice",
        "options": [
          24,
          30,
          32,
          36
        ]
      },
      "initial_state": {
        "sequence": [
          2,
          4,
          8,
          16
        ],
        "choices": [
          24,
          30,
          32,
          36
        ]
      },
      "win_condition": "Select the correct next term"
    },
    {
      "id": "pattern:1",
      "world": "pattern",
      "stage": 2,
      "stage_name": "Calibration",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Successive differences hide a second sequence. Examine the change between values.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/pattern-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Look at the gaps rather than the numbers.",
      "principle": "The gaps grow by 2: +3, +5, +7, +9.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose exactly one of the four possible next numbers. Think about ratios, differences, squares and recurrence.",
      "action_schema": {
        "type": "choice",
        "options": [
          24,
          25,
          27,
          29
        ]
      },
      "initial_state": {
        "sequence": [
          3,
          6,
          11,
          18
        ],
        "choices": [
          24,
          25,
          27,
          29
        ]
      },
      "win_condition": "Select the correct next term"
    },
    {
      "id": "pattern:2",
      "world": "pattern",
      "stage": 3,
      "stage_name": "Interference",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "A small growing sequence is generated from its own history. Discover the recurrence.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/pattern-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Two earlier values build the next.",
      "principle": "Each number is the sum of the previous two.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose exactly one of the four possible next numbers. Think about ratios, differences, squares and recurrence.",
      "action_schema": {
        "type": "choice",
        "options": [
          7,
          8,
          9,
          10
        ]
      },
      "initial_state": {
        "sequence": [
          1,
          1,
          2,
          3,
          5
        ],
        "choices": [
          7,
          8,
          9,
          10
        ]
      },
      "win_condition": "Select the correct next term"
    },
    {
      "id": "pattern:3",
      "world": "pattern",
      "stage": 4,
      "stage_name": "Critical Path",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The sequence looks geometric, but it is built from square numbers.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/pattern-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "Think of squares on a chessboard.",
      "principle": "These are consecutive perfect squares: 1², 2², 3², 4², 5².",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose exactly one of the four possible next numbers. Think about ratios, differences, squares and recurrence.",
      "action_schema": {
        "type": "choice",
        "options": [
          20,
          24,
          25,
          27
        ]
      },
      "initial_state": {
        "sequence": [
          1,
          4,
          9,
          16
        ],
        "choices": [
          20,
          24,
          25,
          27
        ]
      },
      "win_condition": "Select the correct next term"
    },
    {
      "id": "pattern:4",
      "world": "pattern",
      "stage": 5,
      "stage_name": "Master Protocol",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Not every pattern is a simple ratio. Analyze the changing increments.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/pattern-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "The added quantity increases by one.",
      "principle": "The changes are +1, +2, +3, +4, so the next is +5.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose exactly one of the four possible next numbers. Think about ratios, differences, squares and recurrence.",
      "action_schema": {
        "type": "choice",
        "options": [
          15,
          16,
          17,
          19
        ]
      },
      "initial_state": {
        "sequence": [
          2,
          3,
          5,
          8,
          12
        ],
        "choices": [
          15,
          16,
          17,
          19
        ]
      },
      "win_condition": "Select the correct next term"
    },
    {
      "id": "balance:0",
      "world": "balance",
      "stage": 1,
      "stage_name": "Ignition",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Bring a failing station online with a small resource budget. Cooling and throughput must both work.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/balance-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "All three subsystems must be present. Start with power ≥2, coolant ≥2 and bandwidth ≥3.",
      "principle": "More power is useful only when cooling and bandwidth can support it.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose integer values 0–8 for power, coolant and bandwidth. Meet ALL constraints; zeroing out a subsystem fails minimum requirements.",
      "action_schema": {
        "type": "configuration",
        "fields": [
          "power",
          "coolant",
          "bandwidth"
        ],
        "integer_min": 0,
        "integer_max": 8
      },
      "initial_state": {
        "power": 0,
        "coolant": 0,
        "bandwidth": 0
      },
      "thresholds": {
        "max_budget": 16,
        "min_throughput": 11,
        "max_heat": 4,
        "min_resilience": 5,
        "min_power": 2,
        "min_coolant": 2,
        "min_bandwidth": 3
      },
      "equations": {
        "cost": "2*power + coolant + 2*bandwidth",
        "throughput": "power + 2*bandwidth",
        "heat": "2*power - 2*coolant",
        "resilience": "coolant + bandwidth"
      },
      "win_condition": "All five game-engine tests pass (essential subsystem minimums, budget, throughput, heat, resilience)."
    },
    {
      "id": "balance:1",
      "world": "balance",
      "stage": 2,
      "stage_name": "Calibration",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Demand rises while heat tolerance falls. Trade resources without violating reliability.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/balance-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "All three subsystems must be present. Start with power ≥2, coolant ≥2 and bandwidth ≥3.",
      "principle": "Every budget is a constraint, not an unlimited wish list.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose integer values 0–8 for power, coolant and bandwidth. Meet ALL constraints; zeroing out a subsystem fails minimum requirements.",
      "action_schema": {
        "type": "configuration",
        "fields": [
          "power",
          "coolant",
          "bandwidth"
        ],
        "integer_min": 0,
        "integer_max": 8
      },
      "initial_state": {
        "power": 0,
        "coolant": 0,
        "bandwidth": 0
      },
      "thresholds": {
        "max_budget": 18,
        "min_throughput": 13,
        "max_heat": 2,
        "min_resilience": 6,
        "min_power": 2,
        "min_coolant": 2,
        "min_bandwidth": 3
      },
      "equations": {
        "cost": "2*power + coolant + 2*bandwidth",
        "throughput": "power + 2*bandwidth",
        "heat": "2*power - 2*coolant",
        "resilience": "coolant + bandwidth"
      },
      "win_condition": "All five game-engine tests pass (essential subsystem minimums, budget, throughput, heat, resilience)."
    },
    {
      "id": "balance:2",
      "world": "balance",
      "stage": 3,
      "stage_name": "Interference",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The station needs greater throughput, but its limited budget still applies.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/balance-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "All three subsystems must be present. Start with power ≥2, coolant ≥2 and bandwidth ≥4.",
      "principle": "Improving one metric can worsen another.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose integer values 0–8 for power, coolant and bandwidth. Meet ALL constraints; zeroing out a subsystem fails minimum requirements.",
      "action_schema": {
        "type": "configuration",
        "fields": [
          "power",
          "coolant",
          "bandwidth"
        ],
        "integer_min": 0,
        "integer_max": 8
      },
      "initial_state": {
        "power": 0,
        "coolant": 0,
        "bandwidth": 0
      },
      "thresholds": {
        "max_budget": 20,
        "min_throughput": 15,
        "max_heat": 2,
        "min_resilience": 7,
        "min_power": 2,
        "min_coolant": 2,
        "min_bandwidth": 4
      },
      "equations": {
        "cost": "2*power + coolant + 2*bandwidth",
        "throughput": "power + 2*bandwidth",
        "heat": "2*power - 2*coolant",
        "resilience": "coolant + bandwidth"
      },
      "win_condition": "All five game-engine tests pass (essential subsystem minimums, budget, throughput, heat, resilience)."
    },
    {
      "id": "balance:3",
      "world": "balance",
      "stage": 4,
      "stage_name": "Critical Path",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Maximum heat tolerance is now zero. Keep the reactor viable while controlling waste.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/balance-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "All three subsystems must be present. Start with power ≥2, coolant ≥2 and bandwidth ≥4.",
      "principle": "Reliable designs balance demand, heat and resilience together.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose integer values 0–8 for power, coolant and bandwidth. Meet ALL constraints; zeroing out a subsystem fails minimum requirements.",
      "action_schema": {
        "type": "configuration",
        "fields": [
          "power",
          "coolant",
          "bandwidth"
        ],
        "integer_min": 0,
        "integer_max": 8
      },
      "initial_state": {
        "power": 0,
        "coolant": 0,
        "bandwidth": 0
      },
      "thresholds": {
        "max_budget": 17,
        "min_throughput": 12,
        "max_heat": 0,
        "min_resilience": 6,
        "min_power": 2,
        "min_coolant": 2,
        "min_bandwidth": 4
      },
      "equations": {
        "cost": "2*power + coolant + 2*bandwidth",
        "throughput": "power + 2*bandwidth",
        "heat": "2*power - 2*coolant",
        "resilience": "coolant + bandwidth"
      },
      "win_condition": "All five game-engine tests pass (essential subsystem minimums, budget, throughput, heat, resilience)."
    },
    {
      "id": "balance:4",
      "world": "balance",
      "stage": 5,
      "stage_name": "Master Protocol",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Your final upgrade has a larger budget but the strictest combined demand. Optimize all constraints.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/balance-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "All three subsystems must be present. Start with power ≥2, coolant ≥2 and bandwidth ≥5.",
      "principle": "Optimizing the whole system is more valuable than maximizing one component.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose integer values 0–8 for power, coolant and bandwidth. Meet ALL constraints; zeroing out a subsystem fails minimum requirements.",
      "action_schema": {
        "type": "configuration",
        "fields": [
          "power",
          "coolant",
          "bandwidth"
        ],
        "integer_min": 0,
        "integer_max": 8
      },
      "initial_state": {
        "power": 0,
        "coolant": 0,
        "bandwidth": 0
      },
      "thresholds": {
        "max_budget": 22,
        "min_throughput": 17,
        "max_heat": 2,
        "min_resilience": 8,
        "min_power": 2,
        "min_coolant": 2,
        "min_bandwidth": 5
      },
      "equations": {
        "cost": "2*power + coolant + 2*bandwidth",
        "throughput": "power + 2*bandwidth",
        "heat": "2*power - 2*coolant",
        "resilience": "coolant + bandwidth"
      },
      "win_condition": "All five game-engine tests pass (essential subsystem minimums, budget, throughput, heat, resilience)."
    },
    {
      "id": "defense:0",
      "world": "defense",
      "stage": 1,
      "stage_name": "Ignition",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Your drone enters a hazardous test arena. Keep three shields, collect energy and maintain an escape lane.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/guardian-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "This is a strategic thought exercise: preserve space and react to hazard positions.",
      "principle": "Collect objectives while keeping enough room to evade hazards.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose the safest tactical decision in this TABLETOP THOUGHT SCENARIO. It is NOT a deterministic replay of the live canvas-action physics. The live game requires collecting 3 cores while keeping at least one of three shields.",
      "action_schema": {
        "type": "tactical_choice",
        "options": [
          {
            "id": "RUSH_RIGHT",
            "label": "Rush right into the approaching hazard"
          },
          {
            "id": "MOVE_LEFT",
            "label": "Move left to create distance, then plan an approach"
          },
          {
            "id": "STOP",
            "label": "Stop still and wait for contact"
          }
        ]
      },
      "initial_state": {
        "live_game_cores_required": 3,
        "live_game_start_shields": 3,
        "live_game_hazard_count": 2,
        "tabletop_situation": "The core is above your drone, but a red hazard is closing from the right. Your left lane is open."
      },
      "win_condition": "Tabletop: select the risk-aware strategy. Live game: physically collect required cores with shields remaining; tabletop success never grants a real gameplay win.",
      "provenance_note": "Illustrative instructional simulation; outcome not computed by live frame-based drone physics."
    },
    {
      "id": "defense:1",
      "world": "defense",
      "stage": 2,
      "stage_name": "Calibration",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The air is crowded with moving red drones. Preserve open space rather than chase blindly.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/guardian-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "This is a strategic thought exercise: preserve space and react to hazard positions.",
      "principle": "Moving predictably can be dangerous; change course deliberately.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose the safest tactical decision in this TABLETOP THOUGHT SCENARIO. It is NOT a deterministic replay of the live canvas-action physics. The live game requires collecting 4 cores while keeping at least one of three shields.",
      "action_schema": {
        "type": "tactical_choice",
        "options": [
          {
            "id": "CENTER",
            "label": "Charge through the crowded center"
          },
          {
            "id": "PERIMETER",
            "label": "Use a clear perimeter lane, then approach the core"
          },
          {
            "id": "FREEZE",
            "label": "Stay stationary until a hazard reaches you"
          }
        ]
      },
      "initial_state": {
        "live_game_cores_required": 4,
        "live_game_start_shields": 3,
        "live_game_hazard_count": 3,
        "tabletop_situation": "You have only one shield and hazards move through the middle of the arena. The next core is near the far wall."
      },
      "win_condition": "Tabletop: select the risk-aware strategy. Live game: physically collect required cores with shields remaining; tabletop success never grants a real gameplay win.",
      "provenance_note": "Illustrative instructional simulation; outcome not computed by live frame-based drone physics."
    },
    {
      "id": "defense:2",
      "world": "defense",
      "stage": 3,
      "stage_name": "Interference",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "A moving hazard blocks a collectible. Time your approach instead of rushing through danger.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/guardian-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "This is a strategic thought exercise: preserve space and react to hazard positions.",
      "principle": "Use open space to create reaction time.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose the safest tactical decision in this TABLETOP THOUGHT SCENARIO. It is NOT a deterministic replay of the live canvas-action physics. The live game requires collecting 5 cores while keeping at least one of three shields.",
      "action_schema": {
        "type": "tactical_choice",
        "options": [
          {
            "id": "CHASE",
            "label": "Follow directly behind and overtake the hazard"
          },
          {
            "id": "WAIT_GAP",
            "label": "Maintain distance and enter after the hazard moves past"
          },
          {
            "id": "COLLIDE",
            "label": "Trade a shield for a faster core"
          }
        ]
      },
      "initial_state": {
        "live_game_cores_required": 5,
        "live_game_start_shields": 3,
        "live_game_hazard_count": 4,
        "tabletop_situation": "A red hazard is crossing the shortest line to an energy core. Its path is currently in front of you."
      },
      "win_condition": "Tabletop: select the risk-aware strategy. Live game: physically collect required cores with shields remaining; tabletop success never grants a real gameplay win.",
      "provenance_note": "Illustrative instructional simulation; outcome not computed by live frame-based drone physics."
    },
    {
      "id": "defense:3",
      "world": "defense",
      "stage": 4,
      "stage_name": "Critical Path",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "Your route meets the arena edge. Recognize that walls remove escape choices.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/guardian-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "This is a strategic thought exercise: preserve space and react to hazard positions.",
      "principle": "Risk changes as more hazards appear; adapt your route.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose the safest tactical decision in this TABLETOP THOUGHT SCENARIO. It is NOT a deterministic replay of the live canvas-action physics. The live game requires collecting 6 cores while keeping at least one of three shields.",
      "action_schema": {
        "type": "tactical_choice",
        "options": [
          {
            "id": "CORNER",
            "label": "Push further into the corner"
          },
          {
            "id": "INWARD",
            "label": "Move inward toward the nearest safe open lane"
          },
          {
            "id": "IGNORE",
            "label": "Ignore the obstacle and move along the wall"
          }
        ]
      },
      "initial_state": {
        "live_game_cores_required": 6,
        "live_game_start_shields": 3,
        "live_game_hazard_count": 5,
        "tabletop_situation": "Your drone approaches the bottom-right corner while a moving obstacle enters from the left."
      },
      "win_condition": "Tabletop: select the risk-aware strategy. Live game: physically collect required cores with shields remaining; tabletop success never grants a real gameplay win.",
      "provenance_note": "Illustrative instructional simulation; outcome not computed by live frame-based drone physics."
    },
    {
      "id": "defense:4",
      "world": "defense",
      "stage": 5,
      "stage_name": "Master Protocol",
      "audience": "human browser / paper / visual / read-only AI reasoning",
      "narrative": "The final energy recovery demands careful movement among several converging hazards.",
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/guardian-game.png",
        "provenance": "Automated browser screenshot of real deployed public UI, not human gameplay; same world illustration across difficulties."
      },
      "hint": "This is a strategic thought exercise: preserve space and react to hazard positions.",
      "principle": "Successful control means finishing the objective without exhausting your margin.",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "verified_source": "engine.js v1.0.0",
      "instructions": "Choose the safest tactical decision in this TABLETOP THOUGHT SCENARIO. It is NOT a deterministic replay of the live canvas-action physics. The live game requires collecting 7 cores while keeping at least one of three shields.",
      "action_schema": {
        "type": "tactical_choice",
        "options": [
          {
            "id": "HEAD_ON",
            "label": "Rush through the center to save time"
          },
          {
            "id": "ESCAPE_ARC",
            "label": "Follow the open arc and collect when a clear window appears"
          },
          {
            "id": "PANIC",
            "label": "Make random turns without checking the hazards"
          }
        ]
      },
      "initial_state": {
        "live_game_cores_required": 7,
        "live_game_start_shields": 3,
        "live_game_hazard_count": 6,
        "tabletop_situation": "Several hazards converge near the final core. You can still see a wide open arc behind them."
      },
      "win_condition": "Tabletop: select the risk-aware strategy. Live game: physically collect required cores with shields remaining; tabletop success never grants a real gameplay win.",
      "provenance_note": "Illustrative instructional simulation; outcome not computed by live frame-based drone physics."
    },
    {
      "id": "final:0",
      "world": "final",
      "stage": 1,
      "stage_name": "Omega Core",
      "narrative": "Six systems have been restored. The final chamber shows six world sigils. Enter them in world order to bring the Matrix online.",
      "instructions": "Only available after the other 30 missions are completed in the same game mode. Assemble the six sigils from World 01 through World 06, without spaces.",
      "action_schema": {
        "type": "access_code",
        "pattern": "^[0-9]{6}$"
      },
      "initial_state": {
        "required_preconditions": "30 prior mission clears",
        "sigils": [
          {
            "world_order": 1,
            "name": "Vector Run",
            "sigil": "7"
          },
          {
            "world_order": 2,
            "name": "Circuit Forge",
            "sigil": "2"
          },
          {
            "world_order": 3,
            "name": "Cipher Vault",
            "sigil": "9"
          },
          {
            "world_order": 4,
            "name": "Pattern Lab",
            "sigil": "4"
          },
          {
            "world_order": 5,
            "name": "Reactor Balance",
            "sigil": "1"
          },
          {
            "world_order": 6,
            "name": "Neon Guardian",
            "sigil": "6"
          }
        ]
      },
      "win_condition": "The combined access code equals the world-order sigil sequence.",
      "hint": "Read the sigils from World 01 through World 06; do not reorder by genre.",
      "principle": "You coordinated all six systems and completed the Matrix.",
      "verified_source": "engine.js v1.0.0",
      "actual_game_URL": "/commons/demos/matrix-arcade/index.html",
      "simulation_writes_remote_state": false,
      "visual": {
        "screenshot": "/commons/demos/matrix-arcade/final-game.png",
        "provenance": "Isolated automated-browser finale view, not an observed human playthrough."
      }
    }
  ]
}
