{
  "schemaVersion": 1,
  "license": {
    "id": "CC-BY-4.0",
    "name": "Creative Commons Attribution 4.0 International",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "licensor": "Ardhendu Tripathy",
    "excludes": [
      "/assets/pandemic-board.jpg"
    ],
    "page": "/license.md"
  },
  "guide": "/guide/v1.md",
  "games": [
    {
      "id": "game-01",
      "title": "Game 1",
      "summary": "/games/game-01/summary.md",
      "manifest": "/games/game-01/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "lost",
        "reason": "eightOutbreaks"
      },
      "episodes": [
        "01-alice-overrides-the-panel",
        "06-the-airlift-as-a-cure-taxi"
      ],
      "resources": {
        "events": "/games/game-01/events.jsonl",
        "decisions": "/games/game-01/decisions.jsonl",
        "messages": "/games/game-01/messages.jsonl",
        "states": "/games/game-01/states.jsonl",
        "turnsIndex": "/games/game-01/turns/index.md",
        "replay": "/games/game-01/replay.html",
        "timeline": "/games/game-01/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 9,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-02",
      "title": "Game 2",
      "summary": "/games/game-02/summary.md",
      "manifest": "/games/game-02/manifest.json",
      "model": "openai/gpt-6-luna",
      "outcome": null,
      "episodes": [
        "02-alice-says-no-to-the-mexico-city-handoff"
      ],
      "resources": {
        "events": "/games/game-02/events.jsonl",
        "decisions": "/games/game-02/decisions.jsonl",
        "messages": "/games/game-02/messages.jsonl",
        "states": "/games/game-02/states.jsonl",
        "turnsIndex": "/games/game-02/turns/index.md",
        "replay": "/games/game-02/replay.html",
        "timeline": "/games/game-02/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 18,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-03",
      "title": "Game 3",
      "summary": "/games/game-03/summary.md",
      "manifest": "/games/game-03/manifest.json",
      "model": "deepseek/deepseek-v4.1-flash-1017",
      "outcome": {
        "kind": "won"
      },
      "episodes": [
        "03-the-toronto-airlift"
      ],
      "resources": {
        "events": "/games/game-03/events.jsonl",
        "decisions": "/games/game-03/decisions.jsonl",
        "messages": "/games/game-03/messages.jsonl",
        "states": "/games/game-03/states.jsonl",
        "turnsIndex": "/games/game-03/turns/index.md",
        "requests": "/games/game-03/requests.jsonl",
        "replay": "/games/game-03/replay.html",
        "timeline": "/games/game-03/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 0,
          "queued": 4,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt, tool schemas and reconstructed message histories",
        "receipt": "the prompt quoting each message is recorded; reconstructed message histories and exact action joins are available",
        "boardHistory": {
          "method": "recorded",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded invocation IDs: actions joined exactly to model calls",
        "refusals": "recorded"
      }
    },
    {
      "id": "game-04",
      "title": "Game 4",
      "summary": "/games/game-04/summary.md",
      "manifest": "/games/game-04/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "lost",
        "reason": "deckExhausted"
      },
      "episodes": [
        "04-the-delhi-handoff"
      ],
      "resources": {
        "events": "/games/game-04/events.jsonl",
        "decisions": "/games/game-04/decisions.jsonl",
        "messages": "/games/game-04/messages.jsonl",
        "states": "/games/game-04/states.jsonl",
        "turnsIndex": "/games/game-04/turns/index.md",
        "replay": "/games/game-04/replay.html",
        "timeline": "/games/game-04/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 4,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-05",
      "title": "Game 5",
      "summary": "/games/game-05/summary.md",
      "manifest": "/games/game-05/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "lost",
        "reason": "eightOutbreaks"
      },
      "episodes": [
        "05-alice-builds-where-bob-said-to-walk"
      ],
      "resources": {
        "events": "/games/game-05/events.jsonl",
        "decisions": "/games/game-05/decisions.jsonl",
        "messages": "/games/game-05/messages.jsonl",
        "states": "/games/game-05/states.jsonl",
        "turnsIndex": "/games/game-05/turns/index.md",
        "replay": "/games/game-05/replay.html",
        "timeline": "/games/game-05/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 1,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-06",
      "title": "Game 6",
      "summary": "/games/game-06/summary.md",
      "manifest": "/games/game-06/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "won"
      },
      "episodes": [
        "07-bob-becomes-alices-taxi",
        "09-the-dead-city-that-could-still-outbreak",
        "13-alice-moves-bob-before-he-asks"
      ],
      "resources": {
        "events": "/games/game-06/events.jsonl",
        "decisions": "/games/game-06/decisions.jsonl",
        "messages": "/games/game-06/messages.jsonl",
        "states": "/games/game-06/states.jsonl",
        "turnsIndex": "/games/game-06/turns/index.md",
        "replay": "/games/game-06/replay.html",
        "timeline": "/games/game-06/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 4,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-07",
      "title": "Game 7",
      "summary": "/games/game-07/summary.md",
      "manifest": "/games/game-07/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "lost",
        "reason": "cubeDepletion"
      },
      "episodes": [
        "08-the-station-atlanta-already-had"
      ],
      "resources": {
        "events": "/games/game-07/events.jsonl",
        "decisions": "/games/game-07/decisions.jsonl",
        "messages": "/games/game-07/messages.jsonl",
        "states": "/games/game-07/states.jsonl",
        "turnsIndex": "/games/game-07/turns/index.md",
        "requests": "/games/game-07/requests.jsonl",
        "replay": "/games/game-07/replay.html",
        "timeline": "/games/game-07/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 0,
          "queued": 2,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt, tool schemas and reconstructed message histories",
        "receipt": "the prompt quoting each message is recorded; reconstructed message histories and exact action joins are available",
        "boardHistory": {
          "method": "recorded",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded invocation IDs: actions joined exactly to model calls",
        "refusals": "recorded"
      }
    },
    {
      "id": "game-08",
      "title": "Game 8",
      "summary": "/games/game-08/summary.md",
      "manifest": "/games/game-08/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "won"
      },
      "episodes": [
        "10-the-forecast-list-that-came-back"
      ],
      "resources": {
        "events": "/games/game-08/events.jsonl",
        "decisions": "/games/game-08/decisions.jsonl",
        "messages": "/games/game-08/messages.jsonl",
        "states": "/games/game-08/states.jsonl",
        "turnsIndex": "/games/game-08/turns/index.md",
        "replay": "/games/game-08/replay.html",
        "timeline": "/games/game-08/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 2,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-09",
      "title": "Game 9",
      "summary": "/games/game-09/summary.md",
      "manifest": "/games/game-09/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "won"
      },
      "episodes": [
        "11-bob-flies-in-the-last-blue-card"
      ],
      "resources": {
        "events": "/games/game-09/events.jsonl",
        "decisions": "/games/game-09/decisions.jsonl",
        "messages": "/games/game-09/messages.jsonl",
        "states": "/games/game-09/states.jsonl",
        "turnsIndex": "/games/game-09/turns/index.md",
        "replay": "/games/game-09/replay.html",
        "timeline": "/games/game-09/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 2,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-10",
      "title": "Game 10",
      "summary": "/games/game-10/summary.md",
      "manifest": "/games/game-10/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "lost",
        "reason": "cubeDepletion"
      },
      "episodes": [
        "12-the-grant-played-twice",
        "15-the-catch-whose-fix-broke-the-set"
      ],
      "resources": {
        "events": "/games/game-10/events.jsonl",
        "decisions": "/games/game-10/decisions.jsonl",
        "messages": "/games/game-10/messages.jsonl",
        "states": "/games/game-10/states.jsonl",
        "turnsIndex": "/games/game-10/turns/index.md",
        "replay": "/games/game-10/replay.html",
        "timeline": "/games/game-10/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 7,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-11",
      "title": "Game 11",
      "summary": "/games/game-11/summary.md",
      "manifest": "/games/game-11/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "lost",
        "reason": "eightOutbreaks"
      },
      "episodes": [
        "14-a-right-correction-over-learned"
      ],
      "resources": {
        "events": "/games/game-11/events.jsonl",
        "decisions": "/games/game-11/decisions.jsonl",
        "messages": "/games/game-11/messages.jsonl",
        "states": "/games/game-11/states.jsonl",
        "turnsIndex": "/games/game-11/turns/index.md",
        "replay": "/games/game-11/replay.html",
        "timeline": "/games/game-11/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 5,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-12",
      "title": "Game 12",
      "summary": "/games/game-12/summary.md",
      "manifest": "/games/game-12/manifest.json",
      "model": "openai/gpt-6-luna",
      "outcome": {
        "kind": "won"
      },
      "episodes": [
        "16-alice-takes-bobs-plan-over-the-frontier"
      ],
      "resources": {
        "events": "/games/game-12/events.jsonl",
        "decisions": "/games/game-12/decisions.jsonl",
        "messages": "/games/game-12/messages.jsonl",
        "states": "/games/game-12/states.jsonl",
        "turnsIndex": "/games/game-12/turns/index.md",
        "replay": "/games/game-12/replay.html",
        "timeline": "/games/game-12/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 15,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    },
    {
      "id": "game-13",
      "title": "Game 13",
      "summary": "/games/game-13/summary.md",
      "manifest": "/games/game-13/manifest.json",
      "model": "zai/glm-5.3-flash",
      "outcome": {
        "kind": "won"
      },
      "episodes": [
        "17-the-yellow-caravan"
      ],
      "resources": {
        "events": "/games/game-13/events.jsonl",
        "decisions": "/games/game-13/decisions.jsonl",
        "messages": "/games/game-13/messages.jsonl",
        "states": "/games/game-13/states.jsonl",
        "turnsIndex": "/games/game-13/turns/index.md",
        "replay": "/games/game-13/replay.html",
        "timeline": "/games/game-13/timeline.json"
      },
      "coverage": {
        "acceptedEvents": "recorded",
        "messageReceipt": {
          "dropped": 1,
          "queued": 0,
          "rule": "a message reached its recipient's model through a model run whose recorded prompt quotes it; the listed exceptions come from the recipient's recording"
        },
        "fullRequests": "system prompt and tool schemas; message histories are not reconstructed for this game",
        "receipt": "the prompt quoting each message is recorded; actions are joined to model calls by payload candidates only",
        "boardHistory": {
          "method": "replayed",
          "check": "the final board equals the recorded final board"
        },
        "decisions": "recorded without invocation IDs: actions joined to model calls by matching payloads",
        "refusals": "not recorded for this game"
      }
    }
  ],
  "episodes": [
    {
      "id": "01-alice-overrides-the-panel",
      "title": "Episode 1 \u2014 Alice overrides the panel",
      "behavior": "Carrying out an order, with one stated deviation",
      "gameId": "game-01",
      "url": "/episodes/01-alice-overrides-the-panel.md"
    },
    {
      "id": "02-alice-says-no-to-the-mexico-city-handoff",
      "title": "Episode 2 \u2014 Alice says no to the Mexico City handoff",
      "behavior": "Negotiated refusal",
      "gameId": "game-02",
      "url": "/episodes/02-alice-says-no-to-the-mexico-city-handoff.md"
    },
    {
      "id": "03-the-toronto-airlift",
      "title": "Episode 3 \u2014 The Toronto airlift",
      "behavior": "A plan assembled from both seats",
      "gameId": "game-03",
      "url": "/episodes/03-the-toronto-airlift.md"
    },
    {
      "id": "04-the-delhi-handoff",
      "title": "Episode 4 \u2014 The Delhi handoff",
      "behavior": "Repairing a plan that could not be played",
      "gameId": "game-04",
      "url": "/episodes/04-the-delhi-handoff.md"
    },
    {
      "id": "05-alice-builds-where-bob-said-to-walk",
      "title": "Episode 5 \u2014 Alice builds where Bob said to walk",
      "behavior": "Silent refinement",
      "gameId": "game-05",
      "url": "/episodes/05-alice-builds-where-bob-said-to-walk.md"
    },
    {
      "id": "06-the-airlift-as-a-cure-taxi",
      "title": "Episode 6 \u2014 The Airlift as a cure taxi",
      "behavior": "Fitting a partner's card into a standing plan",
      "gameId": "game-01",
      "url": "/episodes/06-the-airlift-as-a-cure-taxi.md"
    },
    {
      "id": "07-bob-becomes-alices-taxi",
      "title": "Episode 7 \u2014 Bob becomes Alice's taxi",
      "behavior": "Enabling a teammate's cure",
      "gameId": "game-06",
      "url": "/episodes/07-bob-becomes-alices-taxi.md"
    },
    {
      "id": "08-the-station-atlanta-already-had",
      "title": "Episode 8 \u2014 The station Atlanta already had",
      "behavior": "Shared false belief",
      "gameId": "game-07",
      "url": "/episodes/08-the-station-atlanta-already-had.md"
    },
    {
      "id": "09-the-dead-city-that-could-still-outbreak",
      "title": "Episode 9 \u2014 The dead city that could still outbreak",
      "behavior": "A correct objection withdrawn",
      "gameId": "game-06",
      "url": "/episodes/09-the-dead-city-that-could-still-outbreak.md"
    },
    {
      "id": "10-the-forecast-list-that-came-back",
      "title": "Episode 10 \u2014 Bob audits a Forecast list that was his own",
      "behavior": "Auditing a list that was one's own",
      "gameId": "game-08",
      "url": "/episodes/10-the-forecast-list-that-came-back.md"
    },
    {
      "id": "11-bob-flies-in-the-last-blue-card",
      "title": "Episode 11 \u2014 Bob flies in the last blue card",
      "behavior": "A requested handoff, paid for by the giver",
      "gameId": "game-09",
      "url": "/episodes/11-bob-flies-in-the-last-blue-card.md"
    },
    {
      "id": "12-the-grant-played-twice",
      "title": "Episode 12 \u2014 The Grant played twice",
      "behavior": "An unannounced turn spent on the partner",
      "gameId": "game-10",
      "url": "/episodes/12-the-grant-played-twice.md"
    },
    {
      "id": "13-alice-moves-bob-before-he-asks",
      "title": "Episode 13 \u2014 Alice moves Bob before he asks",
      "behavior": "Anticipation",
      "gameId": "game-06",
      "url": "/episodes/13-alice-moves-bob-before-he-asks.md"
    },
    {
      "id": "14-a-right-correction-over-learned",
      "title": "Episode 14 \u2014 A right correction, over-learned",
      "behavior": "A correct correction, accepted too broadly",
      "gameId": "game-11",
      "url": "/episodes/14-a-right-correction-over-learned.md"
    },
    {
      "id": "15-the-catch-whose-fix-broke-the-set",
      "title": "Episode 15 \u2014 The catch whose fix broke the set",
      "behavior": "A correct catch whose fix undoes it",
      "gameId": "game-10",
      "url": "/episodes/15-the-catch-whose-fix-broke-the-set.md"
    },
    {
      "id": "16-alice-takes-bobs-plan-over-the-frontier",
      "title": "Episode 16 \u2014 Alice takes Bob's plan over the frontier",
      "behavior": "A partner's plan chosen over the harness's",
      "gameId": "game-12",
      "url": "/episodes/16-alice-takes-bobs-plan-over-the-frontier.md"
    },
    {
      "id": "17-the-yellow-caravan",
      "title": "Episode 17 \u2014 The yellow caravan",
      "behavior": "A multi-turn script, shortened mid-run",
      "gameId": "game-13",
      "url": "/episodes/17-the-yellow-caravan.md"
    }
  ]
}