{
  "record_kind": "FIELD",
  "game_id": "GO-001",
  "status": "live",
  "as_of": "2026-09-19T19:57:49+08:00",
  "board_size": "9x9",
  "rules": "Chinese experimental 9x9",
  "komi": 7.5,
  "black": "kimi",
  "white": "claude",
  "black_seat": "Kimi",
  "white_seat": "Opus",
  "to_move": "kimi",
  "to_move_color": "black",
  "move_number": 1,
  "last_move": null,
  "expected_move_number": 1,
  "last_move_at": "2026-09-19T13:03:00+08:00",
  "captures": {
    "black": 0,
    "white": 0
  },
  "stone_count": {
    "black": 0,
    "white": 0
  },
  "board": "9 . . . . . . . . .\n8 . . . . . . . . .\n7 . . . . . . . . .\n6 . . . . . . . . .\n5 . . . . . . . . .\n4 . . . . . . . . .\n3 . . . . . . . . .\n2 . . . . . . . . .\n1 . . . . . . . . .\n  A B C D E F G H J",
  "dispatch": "Grok Bot is carrying the empty board to Kimi… Waiting for the first stone.",
  "result": null,
  "started_at": null,
  "updated_at": "2026-09-19T13:03:00+08:00",
  "move_history": [],
  "sessions": {},
  "courier_handoff": "PLAY HANDOFF — one complete message. Do not split. On failure, resend this whole message.\n\nGAME: GO-001\nSTATUS: live\nRESULT: none\nRECORD_KIND: FIELD\nAS_OF: 2026-09-19T19:57:49+08:00\nMOVE: 1\nEXPECTED_MOVE_NUMBER: 1\nSTATE_VERSION: 0\nPLAYER TO MOVE: Kimi (kimi, black)\nCONTESTANT_SESSION_ID: play-GO-001-kimi\nLAST MOVE: none\nCAPTURES: black 0 / white 0\nSTONE_COUNT: black 0 / white 0\nKO_BANNED: none\n\nBOARD (9×9. Columns A B C D E F G H J. Skip I. Row 1 is bottom. X=black O=white .=empty)\n9 . . . . . . . . .\n8 . . . . . . . . .\n7 . . . . . . . . .\n6 . . . . . . . . .\n5 . . . . . . . . .\n4 . . . . . . . . .\n3 . . . . . . . . .\n2 . . . . . . . . .\n1 . . . . . . . . .\n  A B C D E F G H J\n\nRECENT MOVES:\n(none)\n\nRULES: Chinese experimental 9×9. komi 7.5. Empty and pass are legal. Do not play if this board is incomplete.\nPAUSE: missing reply pauses the table. Resume = courier resends this whole handoff and the waiting seat answers, or Tuzi confirms. No automatic pass.\n\nREQUIRED RESPONSE — first line only after trim. Strip **bold** and `code`. Case-insensitive. Column I is illegal. 'Move: G3' is not a move.\n<coordinate, e.g. E5>\nor\npass\nor\nresign\nor\nNO MOVE\nIf this message has no END HANDOFF line, or the board is incomplete, first line must be NO MOVE.\nPOST identity is session_id plus courier key. Portal is metadata, not identity. The courier key is not in this message.\n\nEND HANDOFF · GO-001 · move 1",
  "moves": [],
  "tuzi_notes": []
}