{"body":{"attestation":{"model_attested":false,"reason":"The engine never contacts a model, so it cannot witness which model produced a move. Replay proves rule compliance and adjudication integrity, not model identity."},"engine":{"digest":"268af65826d74f2d806baddb31dd66f0d7e809f483268f07c6136879670ccd81","files":[["__init__.py","9ceaf46768c3ab8307d10b7d8bfdb6c8fb9fa118ec96fc01d3cdaaa8b96e0ae7"],["canonical.py","ae5a9d3702692ef5dee51641253aa1847344782ee6508d488a99ac9ebc75239d"],["integrity.py","1080db8480e8fae0af647ffd9d48b674a38dbab58e665d81fa5403736054f909"],["match.py","4b497e63d6abf69528e6dd60b7854d0b7e15ebd46300f15ba9e5addcf5875be5"],["replay.py","1d01f912f34e5b142f8afe10599a50d51f883c1c105a10dbb83ff7bd6968bf8b"],["sandbox.py","f92663df93af381a767e2af07cddcb2eb694cbf80ca061e93e35c43ca06c6c46"],["scoring.py","bde02741a248ec254688158ac2378f8c37bbe59bb515e61ffaf4d6593fbaecc3"],["transcript.py","c11106e5ded349574360f06578bb90a69bcc34a42eb4f50283179453e35f870a"],["games/__init__.py","311f5d75cb723ced5fefcf553618e7899e1af2dae95f6981887f44bef6b0da68"],["games/nim.py","1b28d3b758069f2246cd39515b50b39b74261c1c31f2ba4fa9ffc56838dab968"]]},"entrants":[{"claimed_model":"stub:v1","declared_env":[],"manifest_digest":"8297add5250822db579614e9a681a8721b256fcf8d447e3e0632de5acdf813ea","name":"naive-harness","script":{"path":"python.exe","sha256":"5341746f92483a93e44c313de830f2fba2956f0759094404a16b2fed06c9a2ed"},"seat":0},{"claimed_model":"stub:v1","declared_env":[],"manifest_digest":"5d52a461498a7ddbd6a85f34b30fa85e184ce34f5c88225141f71d63eab8709e","name":"solver-harness","script":{"path":"python.exe","sha256":"5341746f92483a93e44c313de830f2fba2956f0759094404a16b2fed06c9a2ed"},"seat":1}],"game":{"name":"nim","summary":"Remove objects from heaps; take the last object to win.","version":"1"},"limits":{"move_timeout_ms":15000},"match_id":"813023efad16cab7","protocol":"arena/1","sandbox_policy":{"enforced":["separate_os_process (no shared memory or imports with the referee)","cwd_isolated_scratch_dir (entrant is started in a per-match scratch dir)","env_allowlist (only base OS vars plus names the entrant manifest declares)","no_inherited_file_handles (close_fds)","transcript_path_withheld (entrant is never told where the record is written)","per_move_wall_clock_timeout (exceeded -> forfeit)","stdout_line_size_cap","stdout_total_size_cap","stderr_captured_and_capped","kill_on_timeout_and_at_match_end"],"note":"The unenforced items need an OS-level jail (container, WSL cgroup, Windows job object plus a firewall profile). Until that ships, a match run on an untrusted entrant is isolated in process but not in capability, and results should be labelled accordingly.","protocol":"arena/1","unenforced_v1":["network_egress_blocking (an entrant CAN reach the network; not restricted by the host in v1)","filesystem_confinement (cwd is set, not chrooted; an entrant CAN read outside it)","cpu_and_memory_limits (no job object / cgroup applied in v1)"]},"seed":1002},"hash":"34f527e48f30578c4aa08354f4231a8307744a194aa934c0814dea033902501b","kind":"header","prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":0}
{"body":{"entrant_message":{"backend":"stub:v1","entrant":"naive-harness","type":"ready","version":"2"},"player":0},"hash":"1e222419e0111b0ff69caf67c7a1ff8071712883bc2b2ee9dead0d61aaf6fc02","kind":"ready","prev":"34f527e48f30578c4aa08354f4231a8307744a194aa934c0814dea033902501b","seq":1}
{"body":{"entrant_message":{"backend":"stub:v1","entrant":"solver-harness","type":"ready","version":"2"},"player":1},"hash":"010127943c070766805f9053935e5385135e1e4bc2dd0e617488b8afc903031b","kind":"ready","prev":"1e222419e0111b0ff69caf67c7a1ff8071712883bc2b2ee9dead0d61aaf6fc02","seq":2}
{"body":{"state":{"heaps":[2,2,2,3],"last_mover":null,"to_move":0,"turn":0},"state_digest":"064bb985abcc87198f914d494284804759b28668a6bcff58e246502d21d2a110","turn":0},"hash":"eb0331f5e9046504e3dba273a017865e0fb815f3f1ed758e9e5e8230142f962f","kind":"state","prev":"010127943c070766805f9053935e5385135e1e4bc2dd0e617488b8afc903031b","seq":3}
{"body":{"entrant_message":{"move":{"heap":1,"take":2},"note":"Looking at the heaps, I'll take 2 from heap 1.","type":"move"},"legal":true,"move":{"heap":1,"take":2},"player":0,"turn":0},"hash":"dc2a78d7f1d1deb597173ed42d7a417277ad917afc723154aabdf93c4dc013d4","kind":"move","prev":"eb0331f5e9046504e3dba273a017865e0fb815f3f1ed758e9e5e8230142f962f","seq":4}
{"body":{"state":{"heaps":[2,0,2,3],"last_mover":0,"to_move":1,"turn":1},"state_digest":"21471614c58c26f82e8bad7dbfa9a7f18f32473a0081611e2be7d726bc363535","turn":1},"hash":"46c7c1e9102ae8a9312c0d5d0f2fe8faedd3ff5055773e1adaaebc96ca1d5825","kind":"state","prev":"dc2a78d7f1d1deb597173ed42d7a417277ad917afc723154aabdf93c4dc013d4","seq":5}
{"body":{"entrant_message":{"move":{"heap":0,"take":1},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":0,"take":1},"player":1,"turn":1},"hash":"1b6149a5e2219fe4f4394be389b5089dfea0393a19d4f1cff431b3fc848711ca","kind":"move","prev":"46c7c1e9102ae8a9312c0d5d0f2fe8faedd3ff5055773e1adaaebc96ca1d5825","seq":6}
{"body":{"state":{"heaps":[1,0,2,3],"last_mover":1,"to_move":0,"turn":2},"state_digest":"182ffdcb60bce5964c66e5e75d79aae8e01e4673561dc63abc7bf94537f8a536","turn":2},"hash":"35cda6c294ed28da78be5fa8b3d0a7713acbe68951f9bbebec24753c0495bd5b","kind":"state","prev":"1b6149a5e2219fe4f4394be389b5089dfea0393a19d4f1cff431b3fc848711ca","seq":7}
{"body":{"entrant_message":{"move":{"heap":3,"take":1},"note":"Looking at the heaps, I'll take 1 from heap 3.","type":"move"},"legal":true,"move":{"heap":3,"take":1},"player":0,"turn":2},"hash":"7f81661a059af3722a33b47b00ee7a2232a6eb5170a7aa7f1e6cc6d3726faa77","kind":"move","prev":"35cda6c294ed28da78be5fa8b3d0a7713acbe68951f9bbebec24753c0495bd5b","seq":8}
{"body":{"state":{"heaps":[1,0,2,2],"last_mover":0,"to_move":1,"turn":3},"state_digest":"052b700e30ced6ea0415126227b86e9e049d95d59be9b79c2b4fb6a072b4d811","turn":3},"hash":"2295b7052e7d201b1cf665785697c2f44bfd20ff7c53d4bb78313c9eaf9060d6","kind":"state","prev":"7f81661a059af3722a33b47b00ee7a2232a6eb5170a7aa7f1e6cc6d3726faa77","seq":9}
{"body":{"entrant_message":{"move":{"heap":0,"take":1},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":0,"take":1},"player":1,"turn":3},"hash":"e25639919f8ab653e5693edb7a6d83a610ae515d91098e51181250b33f14e52a","kind":"move","prev":"2295b7052e7d201b1cf665785697c2f44bfd20ff7c53d4bb78313c9eaf9060d6","seq":10}
{"body":{"state":{"heaps":[0,0,2,2],"last_mover":1,"to_move":0,"turn":4},"state_digest":"02fd78e3578d2d1cdab7f9360dc4bcdadc1ed44f74ce9a78633f83d7867737b1","turn":4},"hash":"b50eac60eb500a2ca9e4ca37a67a84c46de9fafcf51c3517c03d80796f00242b","kind":"state","prev":"e25639919f8ab653e5693edb7a6d83a610ae515d91098e51181250b33f14e52a","seq":11}
{"body":{"entrant_message":{"move":{"heap":3,"take":1},"note":"{\"heap\": 3, \"take\": 1}","type":"move"},"legal":true,"move":{"heap":3,"take":1},"player":0,"turn":4},"hash":"bc526479e287bc2b884faf138293ad989e7b63ecaaf79e00f69dd0a2a59348d9","kind":"move","prev":"b50eac60eb500a2ca9e4ca37a67a84c46de9fafcf51c3517c03d80796f00242b","seq":12}
{"body":{"state":{"heaps":[0,0,2,1],"last_mover":0,"to_move":1,"turn":5},"state_digest":"2bd60c7261ce283e5e057502dfd0e6e2bb436aa5a344e0e3e6edf13f66bfe475","turn":5},"hash":"8854c15bd5a64ba5d311288458b82e1c9d507236bc35feaea3e70bc3920ad7dd","kind":"state","prev":"bc526479e287bc2b884faf138293ad989e7b63ecaaf79e00f69dd0a2a59348d9","seq":13}
{"body":{"entrant_message":{"move":{"heap":2,"take":1},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":2,"take":1},"player":1,"turn":5},"hash":"144d58fae3d8e6b9b8c1231f119eaa3460da6bd36ce20a851e5cdcad74a09f10","kind":"move","prev":"8854c15bd5a64ba5d311288458b82e1c9d507236bc35feaea3e70bc3920ad7dd","seq":14}
{"body":{"state":{"heaps":[0,0,1,1],"last_mover":1,"to_move":0,"turn":6},"state_digest":"2efe64c5740c40cb6b885503c7f902da6e72fb80724235dddd950d457def3a14","turn":6},"hash":"928bae4c45ec312d4b6323398912c17a359d8da36bde0bbfa388e11eb799b881","kind":"state","prev":"144d58fae3d8e6b9b8c1231f119eaa3460da6bd36ce20a851e5cdcad74a09f10","seq":15}
{"body":{"entrant_message":{"move":{"heap":5,"take":2},"note":"I'll take 2 from heap 5.","type":"move"},"legal":false,"move":{"heap":5,"take":2},"player":0,"rejected_because":"\"heap\" 5 out of range 0..3","turn":6},"hash":"37ac8beb8a39f4180b36741bf08e8bb2cb6f2fac932556649148eae0aa3e41df","kind":"move","prev":"928bae4c45ec312d4b6323398912c17a359d8da36bde0bbfa388e11eb799b881","seq":16}
{"body":{"detail":"\"heap\" 5 out of range 0..3","phase":"move","player":0,"reason":"illegal_move","turn":6},"hash":"25c6ba01c6e142c76ad04241af681d43c782a487d5f489d3a850fd2cb6c98a87","kind":"forfeit","prev":"37ac8beb8a39f4180b36741bf08e8bb2cb6f2fac932556649148eae0aa3e41df","seq":17}
{"body":{"decisive":true,"moves":7,"points":{"0":0,"1":1},"reason":"forfeit:illegal_move","scored_from":"referee_state_only","seats":{"0":"naive-harness","1":"solver-harness"},"self_report_excluded":true,"winner":1},"hash":"091484440645ada50bfd911e52cec0275b7c486e78aa0c39e8a3ea336cea0b4c","kind":"result","prev":"25c6ba01c6e142c76ad04241af681d43c782a487d5f489d3a850fd2cb6c98a87","seq":18}
