{
  "schema": "local-hive-game-result/1",
  "id": "01-game-studio",
  "stage": "work-produced",
  "generatedAt": "2026-09-19T01:35:40.790Z",
  "title": "Little Signals — a school for small robots",
  "entrypoint": "projects/01-game-studio/index.html",
  "verified": true,
  "observationType": "Actual deterministic automated execution of original browser/Node game rules; DOM contract tests are not a browser or human playtest.",
  "nativeOrganizationActivated": false,
  "interface": {
    "global": "window.hiveGame",
    "contract": "little-signals-api/1",
    "scoreSchema": "little-signals-score/1",
    "replaySchema": "little-signals-replay/1",
    "documentation": "projects/01-game-studio/README.md",
    "limits": {
      "ticks": 150,
      "actions": 512,
      "batch": 64,
      "step": 25,
      "energy": 24
    },
    "defaultOptions": {
      "version": "v4",
      "scenario": "switchback",
      "seed": 42
    },
    "readyEvent": "hive-game-ready",
    "scoreEvent": "hive-game-score",
    "eventTarget": "child window; no external messaging"
  },
  "sourceReview": "projects/01-game-studio/evidence/source-review.json",
  "builds": {
    "v1": {
      "name": "First footsteps",
      "energyPlanning": false,
      "pathfinding": false,
      "courtesy": false,
      "description": "Greedy walking and a fixed three-cell low-battery threshold."
    },
    "v2": {
      "name": "Enough to get home",
      "energyPlanning": true,
      "pathfinding": false,
      "courtesy": false,
      "description": "Recharge fully and budget the outward journey, harvest, return, and two spare cells."
    },
    "v3": {
      "name": "Around, not through",
      "energyPlanning": true,
      "pathfinding": true,
      "courtesy": false,
      "description": "Breadth-first paths route around rocks; energy budgets use the actual path length."
    },
    "v4": {
      "name": "Room for everyone",
      "energyPlanning": true,
      "pathfinding": true,
      "courtesy": true,
      "description": "Reserve different patches, rotate move priority, and exchange places politely at a narrow crossing."
    }
  },
  "currentEngineSha256": "0ff727d2d33562981844f933891568b250fe35d3fe0567a08f80606c2bb330b2",
  "checks": [
    {
      "argv": [
        "node",
        "--test",
        "--test-reporter=tap",
        "projects/01-game-studio/tests/engine.test.mjs",
        "projects/01-game-studio/tests/controller.test.mjs",
        "projects/01-game-studio/tests/app.test.mjs",
        "projects/01-game-studio/tests/evidence.test.mjs"
      ],
      "exitCode": 0,
      "durationMs": 791,
      "output": "projects/01-game-studio/evidence/validation.tap"
    },
    {
      "argv": [
        "node",
        "projects/01-game-studio/tools/bundle-replays.mjs",
        "--check"
      ],
      "exitCode": 0,
      "durationMs": 112,
      "output": "projects/01-game-studio/evidence/validation.tap"
    }
  ],
  "tests": {
    "total": 33,
    "passed": 33,
    "failed": 0,
    "evidence": "projects/01-game-studio/evidence/validation.tap"
  },
  "cycles": [
    {
      "cycle": 1,
      "kind": "actual-build-play-improve",
      "observationType": "deterministic automated engine play; no human fun evidence",
      "before": "projects/01-game-studio/evidence/runs/cycle-01-before.json",
      "after": "projects/01-game-studio/evidence/runs/cycle-01-after.json",
      "controlledInputs": {
        "scenario": "meadow",
        "seed": 42,
        "policy": "solo",
        "tickBudget": 150
      },
      "sequence": [
        "Implemented v1 and ran six engine tests.",
        "Recorded v1: the solo courier delivered one pod, departed undercharged, and stranded itself.",
        "Implemented v2 after observing that recording: recharge fully; budget travel, harvest, return, and two spare energy cells.",
        "Added a regression test; ran all seven tests; recorded v2 with the same actions and seed.",
        "Replayed both files against the updated shared engine and verified exact final states."
      ],
      "measurement": {
        "delivered": [
          1,
          6
        ],
        "strandedEvents": [
          1,
          0
        ],
        "status": [
          "lost",
          "won"
        ],
        "ticks": [
          150,
          111
        ],
        "energySpent": [
          24,
          90
        ]
      },
      "interpretation": "Delivery reliability improved. Total energy spent increased because six trips were completed; this is not a claim of lower total energy use.",
      "remainingFailure": "v2 still walks greedily into stone walls; the next recorded stone-garden run delivered zero pods."
    },
    {
      "cycle": 2,
      "kind": "actual-build-play-improve",
      "observationType": "deterministic automated engine play; no human fun evidence",
      "before": "projects/01-game-studio/evidence/runs/cycle-02-before.json",
      "after": "projects/01-game-studio/evidence/runs/cycle-02-after.json",
      "controlledInputs": {
        "scenario": "switchback",
        "seed": 42,
        "policy": "solo",
        "tickBudget": 150
      },
      "sequence": [
        "Recorded the completed v2 build on the stone garden.",
        "Observed 148 wall bumps, 148 deadlocked beats, and zero deliveries.",
        "Implemented v3 after that run: deterministic breadth-first routing and path-length energy estimates.",
        "Added a regression test and ran all eight engine tests.",
        "Recorded v3 with identical lessons and seed, then replayed all four cycle recordings exactly.",
        "Started a separate whole-class doorway probe; its failure is the third cycle's before-run."
      ],
      "measurement": {
        "delivered": [
          0,
          6
        ],
        "wallBumps": [
          148,
          0
        ],
        "deadlockTicks": [
          148,
          0
        ],
        "strandedEvents": [
          0,
          0
        ],
        "status": [
          "lost",
          "lost"
        ],
        "ticks": [
          150,
          150
        ]
      },
      "interpretation": "Routing is measurably better, but this is NOT a winning run. One courier cannot meet this class mission's twelve-pod goal within the sunset budget.",
      "remainingFailure": "Three v3 couriers can meet head-on and deadlock. The separate doorway run delivered zero pods with 428 blocked moves."
    },
    {
      "cycle": 3,
      "kind": "actual-build-play-improve",
      "observationType": "deterministic automated engine play; no human fun evidence",
      "before": "projects/01-game-studio/evidence/runs/cycle-03-before.json",
      "after": "projects/01-game-studio/evidence/runs/cycle-03-after.json",
      "controlledInputs": {
        "scenario": "narrows",
        "seed": 42,
        "policy": "class",
        "tickBudget": 150
      },
      "sequence": [
        "Recorded the v3 whole-class doorway mission and inspected its head-on congestion.",
        "Observed zero deliveries, 428 blocked robot moves, and 141 globally deadlocked beats.",
        "Implemented v4 after the failure: reserve different patches, rotate movement priority, resolve free moves, and atomically exchange mutually blocked neighbors.",
        "Recorded v4 on the identical garden, seed, and six teaching actions.",
        "Ran all nine engine tests, including trained-class success across three gardens and seven seeds.",
        "Replayed all six historical cycle runs with exact frame and final-state comparisons."
      ],
      "measurement": {
        "delivered": [
          0,
          12
        ],
        "blockedMoves": [
          428,
          10
        ],
        "deadlockTicks": [
          141,
          0
        ],
        "strandedEvents": [
          0,
          0
        ],
        "courtesyPasses": [
          0,
          6
        ],
        "status": [
          "lost",
          "won"
        ],
        "ticks": [
          150,
          96
        ]
      },
      "interpretation": "This controlled automated run meets the goal 54 beats before sunset. Robot-move blockage fell by 418; ten ordinary traffic waits remain. No claim about human enjoyment follows.",
      "remainingFailure": "Untrained robots still hold cargo rather than deliver it; a player can lose by omitting lessons, resting the class, or deliberately switching off battery care. No human/browser/device evaluation has been performed."
    }
  ],
  "runs": [
    {
      "id": "cycle-01-before",
      "artifact": "projects/01-game-studio/evidence/runs/cycle-01-before.json",
      "sha256": "143ad206586ced7cf3967df9d0066ca09a9ae86e4be7c431f58243dcb5f9c5ae",
      "recordedAt": "2026-09-19T01:18:49.571Z",
      "policy": "solo",
      "score": {
        "schema": "little-signals-score/1",
        "game": "01-game-studio",
        "version": "v1",
        "scenario": "meadow",
        "seed": 42,
        "status": "lost",
        "delivered": 1,
        "goal": 6,
        "tick": 150,
        "limit": 150,
        "energy": 48,
        "points": 148,
        "automated": true
      },
      "metrics": {
        "moves": 23,
        "harvested": 1,
        "energySpent": 24,
        "chargeTicks": 0,
        "blockedMoves": 0,
        "wallBumps": 0,
        "trafficWaits": 0,
        "deadlockTicks": 0,
        "longestStall": 0,
        "strandedEvents": 1,
        "rescues": 0,
        "lessons": 5,
        "courtesyPasses": 0,
        "idleTicks": 300
      },
      "actions": 155,
      "frames": 155,
      "finalFingerprint": "35255bbf",
      "replayVerified": true,
      "recordingEngineSha256": "c27803f3230e0202f3beb552baa5e54ce7043c8d5aff4651eb217a7b75e57160",
      "recordingBuildsSha256": "49fc4b67670b42b52329e6023b20441cc77e126b4edf8967b0ff081301f905df"
    },
    {
      "id": "cycle-01-after",
      "artifact": "projects/01-game-studio/evidence/runs/cycle-01-after.json",
      "sha256": "72411b3719f09690ace0f3335c41be2d2667312d890698d7b74d6caf33811ac2",
      "recordedAt": "2026-09-19T01:19:14.154Z",
      "policy": "solo",
      "score": {
        "schema": "little-signals-score/1",
        "game": "01-game-studio",
        "version": "v2",
        "scenario": "meadow",
        "seed": 42,
        "status": "won",
        "delivered": 6,
        "goal": 6,
        "tick": 111,
        "limit": 150,
        "energy": 57,
        "points": 774,
        "automated": true
      },
      "metrics": {
        "moves": 84,
        "harvested": 6,
        "energySpent": 90,
        "chargeTicks": 15,
        "blockedMoves": 0,
        "wallBumps": 0,
        "trafficWaits": 0,
        "deadlockTicks": 0,
        "longestStall": 0,
        "strandedEvents": 0,
        "rescues": 0,
        "lessons": 5,
        "courtesyPasses": 0,
        "idleTicks": 222
      },
      "actions": 116,
      "frames": 116,
      "finalFingerprint": "5ba87d1c",
      "replayVerified": true,
      "recordingEngineSha256": "0a2063794eb950cd11d3ef76b0db9edd410f6a656318619ccb858576751193da",
      "recordingBuildsSha256": "94302ff74ec4135aad73947efe6c02216af6aa4ae2fc799a098adf1f88f0a971"
    },
    {
      "id": "cycle-02-before",
      "artifact": "projects/01-game-studio/evidence/runs/cycle-02-before.json",
      "sha256": "148d1e3aa41342eabbcc0b137abe9b68f76fa8d0f0a39f860ec2ffb12f65b61c",
      "recordedAt": "2026-09-19T01:19:14.269Z",
      "policy": "solo",
      "score": {
        "schema": "little-signals-score/1",
        "game": "01-game-studio",
        "version": "v2",
        "scenario": "switchback",
        "seed": 42,
        "status": "lost",
        "delivered": 0,
        "goal": 12,
        "tick": 150,
        "limit": 150,
        "energy": 70,
        "points": 0,
        "automated": true
      },
      "metrics": {
        "moves": 2,
        "harvested": 0,
        "energySpent": 2,
        "chargeTicks": 0,
        "blockedMoves": 148,
        "wallBumps": 148,
        "trafficWaits": 0,
        "deadlockTicks": 148,
        "longestStall": 148,
        "strandedEvents": 0,
        "rescues": 0,
        "lessons": 5,
        "courtesyPasses": 0,
        "idleTicks": 300
      },
      "actions": 155,
      "frames": 155,
      "finalFingerprint": "ac426af9",
      "replayVerified": true,
      "recordingEngineSha256": "0a2063794eb950cd11d3ef76b0db9edd410f6a656318619ccb858576751193da",
      "recordingBuildsSha256": "94302ff74ec4135aad73947efe6c02216af6aa4ae2fc799a098adf1f88f0a971"
    },
    {
      "id": "cycle-02-after",
      "artifact": "projects/01-game-studio/evidence/runs/cycle-02-after.json",
      "sha256": "1f8b5b9402beb9048760485af7dd992ac086e4f345e59adb5e5f67a6753d8739",
      "recordedAt": "2026-09-19T01:20:00.731Z",
      "policy": "solo",
      "score": {
        "schema": "little-signals-score/1",
        "game": "01-game-studio",
        "version": "v3",
        "scenario": "switchback",
        "seed": 42,
        "status": "lost",
        "delivered": 6,
        "goal": 12,
        "tick": 150,
        "limit": 150,
        "energy": 66,
        "points": 666,
        "automated": true
      },
      "metrics": {
        "moves": 114,
        "harvested": 6,
        "energySpent": 120,
        "chargeTicks": 24,
        "blockedMoves": 0,
        "wallBumps": 0,
        "trafficWaits": 0,
        "deadlockTicks": 0,
        "longestStall": 0,
        "strandedEvents": 0,
        "rescues": 0,
        "lessons": 5,
        "courtesyPasses": 0,
        "idleTicks": 300
      },
      "actions": 155,
      "frames": 155,
      "finalFingerprint": "c9356967",
      "replayVerified": true,
      "recordingEngineSha256": "8ca3521a64762b81869663c70fe738c1cab8911eaab0b06ec54e3a7399579f05",
      "recordingBuildsSha256": "46cf745989b30336931353ad4407b040d657c7a35c9f2d77c8ad21744ba9fc05"
    },
    {
      "id": "cycle-03-before",
      "artifact": "projects/01-game-studio/evidence/runs/cycle-03-before.json",
      "sha256": "ea657aa2747e54b1ec1ca0ac664a7e67be857304d4a3ed07d85bb318293bc416",
      "recordedAt": "2026-09-19T01:20:00.965Z",
      "policy": "class",
      "score": {
        "schema": "little-signals-score/1",
        "game": "01-game-studio",
        "version": "v3",
        "scenario": "narrows",
        "seed": 42,
        "status": "lost",
        "delivered": 0,
        "goal": 12,
        "tick": 150,
        "limit": 150,
        "energy": 50,
        "points": 0,
        "automated": true
      },
      "metrics": {
        "moves": 21,
        "harvested": 1,
        "energySpent": 22,
        "chargeTicks": 0,
        "blockedMoves": 428,
        "wallBumps": 0,
        "trafficWaits": 428,
        "deadlockTicks": 141,
        "longestStall": 141,
        "strandedEvents": 0,
        "rescues": 0,
        "lessons": 6,
        "courtesyPasses": 0,
        "idleTicks": 0
      },
      "actions": 156,
      "frames": 156,
      "finalFingerprint": "ea3899aa",
      "replayVerified": true,
      "recordingEngineSha256": "8ca3521a64762b81869663c70fe738c1cab8911eaab0b06ec54e3a7399579f05",
      "recordingBuildsSha256": "46cf745989b30336931353ad4407b040d657c7a35c9f2d77c8ad21744ba9fc05"
    },
    {
      "id": "cycle-03-after",
      "artifact": "projects/01-game-studio/evidence/runs/cycle-03-after.json",
      "sha256": "bed57cd5861a0a37fe28965123aaac3e799bb3c14afbd5f8e1bb32ecb4f52f2f",
      "recordedAt": "2026-09-19T01:20:54.538Z",
      "policy": "class",
      "score": {
        "schema": "little-signals-score/1",
        "game": "01-game-studio",
        "version": "v4",
        "scenario": "narrows",
        "seed": 42,
        "status": "won",
        "delivered": 12,
        "goal": 12,
        "tick": 96,
        "limit": 150,
        "energy": 44,
        "points": 1386,
        "automated": true
      },
      "metrics": {
        "moves": 215,
        "harvested": 12,
        "energySpent": 227,
        "chargeTicks": 39,
        "blockedMoves": 10,
        "wallBumps": 0,
        "trafficWaits": 10,
        "deadlockTicks": 0,
        "longestStall": 0,
        "strandedEvents": 0,
        "rescues": 0,
        "lessons": 6,
        "courtesyPasses": 6,
        "idleTicks": 0
      },
      "actions": 102,
      "frames": 102,
      "finalFingerprint": "b4df049a",
      "replayVerified": true,
      "recordingEngineSha256": "a0c3959831840e20f2cb5249a327f47afea9efe5306da1230ab1f51dd35a40a5",
      "recordingBuildsSha256": "bd53a5f05af425d24bfb868e6c67c300cc3bdef4bccf3b6d23f17e0115359237"
    },
    {
      "id": "release-trained",
      "artifact": "projects/01-game-studio/evidence/runs/release-trained.json",
      "sha256": "7bf21e19f7c90926486f7e71e69ad597307c32886f4638418198b456239a814f",
      "recordedAt": "2026-09-19T01:30:35.531Z",
      "policy": "class",
      "score": {
        "schema": "little-signals-score/1",
        "game": "01-game-studio",
        "version": "v4",
        "scenario": "switchback",
        "seed": 42,
        "status": "won",
        "delivered": 12,
        "goal": 12,
        "tick": 96,
        "limit": 150,
        "energy": 44,
        "points": 1386,
        "automated": true
      },
      "metrics": {
        "moves": 215,
        "harvested": 12,
        "energySpent": 227,
        "chargeTicks": 39,
        "blockedMoves": 10,
        "wallBumps": 0,
        "trafficWaits": 10,
        "deadlockTicks": 0,
        "longestStall": 0,
        "strandedEvents": 0,
        "rescues": 0,
        "lessons": 6,
        "courtesyPasses": 6,
        "idleTicks": 0
      },
      "actions": 102,
      "frames": 102,
      "finalFingerprint": "02269e5d",
      "replayVerified": true,
      "recordingEngineSha256": "0ff727d2d33562981844f933891568b250fe35d3fe0567a08f80606c2bb330b2",
      "recordingBuildsSha256": "bd53a5f05af425d24bfb868e6c67c300cc3bdef4bccf3b6d23f17e0115359237"
    },
    {
      "id": "release-untaught",
      "artifact": "projects/01-game-studio/evidence/runs/release-untaught.json",
      "sha256": "358fe5273ba4dbb9d494d4953f3f2d3da401e63715fdce026b4d476de48725f3",
      "recordedAt": "2026-09-19T01:30:35.608Z",
      "policy": "untaught",
      "score": {
        "schema": "little-signals-score/1",
        "game": "01-game-studio",
        "version": "v4",
        "scenario": "switchback",
        "seed": 42,
        "status": "lost",
        "delivered": 0,
        "goal": 12,
        "tick": 150,
        "limit": 150,
        "energy": 43,
        "points": 37,
        "automated": true
      },
      "metrics": {
        "moves": 26,
        "harvested": 3,
        "energySpent": 29,
        "chargeTicks": 0,
        "blockedMoves": 3,
        "wallBumps": 0,
        "trafficWaits": 3,
        "deadlockTicks": 0,
        "longestStall": 0,
        "strandedEvents": 0,
        "rescues": 0,
        "lessons": 0,
        "courtesyPasses": 0,
        "idleTicks": 418
      },
      "actions": 150,
      "frames": 150,
      "finalFingerprint": "be23543a",
      "replayVerified": true,
      "recordingEngineSha256": "0ff727d2d33562981844f933891568b250fe35d3fe0567a08f80606c2bb330b2",
      "recordingBuildsSha256": "bd53a5f05af425d24bfb868e6c67c300cc3bdef4bccf3b6d23f17e0115359237"
    }
  ],
  "seedSweep": {
    "policy": "class",
    "version": "v4",
    "execution": "Actual additional deterministic engine executions in tools/report.mjs; each re-executed through replay validation.",
    "cases": [
      {
        "scenario": "meadow",
        "seed": 0,
        "status": "won",
        "tick": 47,
        "delivered": 6,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "meadow",
        "seed": 1,
        "status": "won",
        "tick": 47,
        "delivered": 6,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "meadow",
        "seed": 7,
        "status": "won",
        "tick": 47,
        "delivered": 6,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "meadow",
        "seed": 42,
        "status": "won",
        "tick": 47,
        "delivered": 6,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "meadow",
        "seed": 99,
        "status": "won",
        "tick": 47,
        "delivered": 6,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "meadow",
        "seed": 713,
        "status": "won",
        "tick": 47,
        "delivered": 6,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "meadow",
        "seed": 4294967295,
        "status": "won",
        "tick": 47,
        "delivered": 6,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "switchback",
        "seed": 0,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "switchback",
        "seed": 1,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "switchback",
        "seed": 7,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "switchback",
        "seed": 42,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "switchback",
        "seed": 99,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "switchback",
        "seed": 713,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "switchback",
        "seed": 4294967295,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "narrows",
        "seed": 0,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "narrows",
        "seed": 1,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "narrows",
        "seed": 7,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "narrows",
        "seed": 42,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "narrows",
        "seed": 99,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "narrows",
        "seed": 713,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      },
      {
        "scenario": "narrows",
        "seed": 4294967295,
        "status": "won",
        "tick": 96,
        "delivered": 12,
        "strandedEvents": 0,
        "deadlockTicks": 0,
        "replayVerified": true
      }
    ],
    "wins": 21,
    "losses": 0
  },
  "releaseScore": {
    "schema": "little-signals-score/1",
    "game": "01-game-studio",
    "version": "v4",
    "scenario": "switchback",
    "seed": 42,
    "status": "won",
    "delivered": 12,
    "goal": 12,
    "tick": 96,
    "limit": 150,
    "energy": 44,
    "points": 1386,
    "automated": true
  },
  "negativeControlScore": {
    "schema": "little-signals-score/1",
    "game": "01-game-studio",
    "version": "v4",
    "scenario": "switchback",
    "seed": 42,
    "status": "lost",
    "delivered": 0,
    "goal": 12,
    "tick": 150,
    "limit": 150,
    "energy": 43,
    "points": 37,
    "automated": true
  },
  "unperformed": [
    "real browser rendering",
    "manual keyboard-only review",
    "screen-reader and mobile-device review",
    "human playtesting",
    "native Hive activation",
    "publication",
    "purchases",
    "external mutations",
    "physical or business activity"
  ],
  "limitations": [
    "Actual deterministic automated engine runs and DOM contract tests are not evidence of human enjoyment, usability, or real browser rendering.",
    "No browser, physical device, screen-reader, or manual keyboard-only review was performed by this workstream.",
    "Five minutes is the 150-beat cap at two seconds per beat; planning pauses, fast steps, and early wins change wall-clock duration.",
    "Historical builds intentionally retain their recorded failures; the second cycle's improved solo run still loses.",
    "Robot teaching edits explicit deterministic rules, not a trained machine-learning model.",
    "Original user-authorized game extension; no claim of completing the seed's original Mosslight Courier case, native activation, publication, or business activity."
  ],
  "artifactDigests": [
    {
      "path": "projects/01-game-studio/app.js",
      "bytes": 19754,
      "sha256": "b6e70ca37a040dd7abdd2619448ea3981adc3a47272166177eb68a4633bc21b7"
    },
    {
      "path": "projects/01-game-studio/art/colony.svg",
      "bytes": 3887,
      "sha256": "6fffba6d758e70d0f8649c54677d3cda5c716c275e41101fe89afb008f64d089"
    },
    {
      "path": "projects/01-game-studio/builds.js",
      "bytes": 1195,
      "sha256": "bd53a5f05af425d24bfb868e6c67c300cc3bdef4bccf3b6d23f17e0115359237"
    },
    {
      "path": "projects/01-game-studio/controller.js",
      "bytes": 2802,
      "sha256": "a9d38a4a8b25766c8b712c52420e0ccd6b31350bbd751bba6770509ff07f6f50"
    },
    {
      "path": "projects/01-game-studio/engine.js",
      "bytes": 20368,
      "sha256": "0ff727d2d33562981844f933891568b250fe35d3fe0567a08f80606c2bb330b2"
    },
    {
      "path": "projects/01-game-studio/evidence/cycle-01.json",
      "bytes": 1339,
      "sha256": "ae0cf7f2fa3b00e9bf7f78deec5debbfc85950c70a481653e84bda77e43a6ef5"
    },
    {
      "path": "projects/01-game-studio/evidence/cycle-02.json",
      "bytes": 1436,
      "sha256": "7bb49cd48b0c31fd391cc94efefb047e4c585bc0503fb11bea7faebf3f40b88a"
    },
    {
      "path": "projects/01-game-studio/evidence/cycle-03.json",
      "bytes": 1708,
      "sha256": "0a6faa18ac1bf1bd3700bd57c91bdf20085f6c4016ae4cd469124247f206588e"
    },
    {
      "path": "projects/01-game-studio/evidence/runs/cycle-01-after.json",
      "bytes": 106397,
      "sha256": "72411b3719f09690ace0f3335c41be2d2667312d890698d7b74d6caf33811ac2"
    },
    {
      "path": "projects/01-game-studio/evidence/runs/cycle-01-before.json",
      "bytes": 140551,
      "sha256": "143ad206586ced7cf3967df9d0066ca09a9ae86e4be7c431f58243dcb5f9c5ae"
    },
    {
      "path": "projects/01-game-studio/evidence/runs/cycle-02-after.json",
      "bytes": 140775,
      "sha256": "1f8b5b9402beb9048760485af7dd992ac086e4f345e59adb5e5f67a6753d8739"
    },
    {
      "path": "projects/01-game-studio/evidence/runs/cycle-02-before.json",
      "bytes": 141241,
      "sha256": "148d1e3aa41342eabbcc0b137abe9b68f76fa8d0f0a39f860ec2ffb12f65b61c"
    },
    {
      "path": "projects/01-game-studio/evidence/runs/cycle-03-after.json",
      "bytes": 95621,
      "sha256": "bed57cd5861a0a37fe28965123aaac3e799bb3c14afbd5f8e1bb32ecb4f52f2f"
    },
    {
      "path": "projects/01-game-studio/evidence/runs/cycle-03-before.json",
      "bytes": 142003,
      "sha256": "ea657aa2747e54b1ec1ca0ac664a7e67be857304d4a3ed07d85bb318293bc416"
    },
    {
      "path": "projects/01-game-studio/evidence/runs/release-trained.json",
      "bytes": 95462,
      "sha256": "7bf21e19f7c90926486f7e71e69ad597307c32886f4638418198b456239a814f"
    },
    {
      "path": "projects/01-game-studio/evidence/runs/release-untaught.json",
      "bytes": 138619,
      "sha256": "358fe5273ba4dbb9d494d4953f3f2d3da401e63715fdce026b4d476de48725f3"
    },
    {
      "path": "projects/01-game-studio/evidence/source-review.json",
      "bytes": 6571,
      "sha256": "b6f28386b05dbce9e916fe1095a55e29bfbac6be7f0453c2dde907839844392f"
    },
    {
      "path": "projects/01-game-studio/evidence/validation-history.json",
      "bytes": 1750,
      "sha256": "be1e78b4d2427b470306c193ad7bafeb701b69041761812ab5adfd678caf873b"
    },
    {
      "path": "projects/01-game-studio/evidence/validation.tap",
      "bytes": 7687,
      "sha256": "2b6cd0c19678a3f375553631b6d2f78285cdd0f2152e1c18365a260c011e45da"
    },
    {
      "path": "projects/01-game-studio/index.html",
      "bytes": 15380,
      "sha256": "08b979b1d51e291f79d4380400758224cc263aa5f95ba07016a7ad9fe575c6c9"
    },
    {
      "path": "projects/01-game-studio/manifest.json",
      "bytes": 2894,
      "sha256": "1b3d370adc0716951a7ed8057d0436191354308b8d564ca9d1735878eda549d1"
    },
    {
      "path": "projects/01-game-studio/README.md",
      "bytes": 11318,
      "sha256": "d8e4833c088e51d3107e09675b4a489cf4e62df98e48cb769d18f0a139111ea7"
    },
    {
      "path": "projects/01-game-studio/replay-data.js",
      "bytes": 235650,
      "sha256": "064e12df38169d1b661ef709e48bf9faec0462138743894bee7c4648a5dc0328"
    },
    {
      "path": "projects/01-game-studio/SOURCE-NOTICE.txt",
      "bytes": 1525,
      "sha256": "e0a2a72ab43ea4769236a84ca7e1628691198f630ee81b63cecce7bdb710bc67"
    },
    {
      "path": "projects/01-game-studio/style.css",
      "bytes": 17508,
      "sha256": "5d79498a44d8f3cb9cbd830cdb395e6ce8d03056fcf2507b504f1b536fe1e3e8"
    },
    {
      "path": "projects/01-game-studio/tests/app.test.mjs",
      "bytes": 10806,
      "sha256": "5f8fd333f22f16995f4fc566c894885469d70de6923cf1e8480968705b37be98"
    },
    {
      "path": "projects/01-game-studio/tests/controller.test.mjs",
      "bytes": 4802,
      "sha256": "a58b3f86f2262d3bf1cbf9271d6d4d4fd8e1010c9f1bcee2a00606987fc33cd0"
    },
    {
      "path": "projects/01-game-studio/tests/engine.test.mjs",
      "bytes": 7683,
      "sha256": "fd5be7ba7a181e59966eee823950c57350839d37737badc0ec78505fc53ba6c4"
    },
    {
      "path": "projects/01-game-studio/tests/evidence.test.mjs",
      "bytes": 6712,
      "sha256": "ae75634eaa185c1e06086584caeaca158e280bdfcdce5f9fff3fe51a971e0930"
    },
    {
      "path": "projects/01-game-studio/tools/bundle-replays.mjs",
      "bytes": 1276,
      "sha256": "bbe832e3aa342c99c434b8b41a8eda40dda0005af359fedb1f854c678815a20c"
    },
    {
      "path": "projects/01-game-studio/tools/play.mjs",
      "bytes": 3321,
      "sha256": "fab8f43b5e2a0a922ff94b2f178b17d231ea1a03f3034e46424704ad577a89a1"
    },
    {
      "path": "projects/01-game-studio/tools/report.mjs",
      "bytes": 6576,
      "sha256": "aa59d4f0df090a0775ec6336735a9e2e9fc88c98a821999a443251b955c31682"
    }
  ]
}
