{"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":"34b665f7501818be","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":1000},"hash":"ea0da677595161bdde4bcaed68cac69b113dec2d74846b3c812cc8e56b85498f","kind":"header","prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":0}
{"body":{"entrant_message":{"backend":"stub:v1","entrant":"naive-harness","type":"ready","version":"2"},"player":0},"hash":"f4a2f794b24b4b40d3eb4f3fb7096d8bd22d1cbd50a21509d27d936bed3f461c","kind":"ready","prev":"ea0da677595161bdde4bcaed68cac69b113dec2d74846b3c812cc8e56b85498f","seq":1}
{"body":{"entrant_message":{"backend":"stub:v1","entrant":"solver-harness","type":"ready","version":"2"},"player":1},"hash":"4f6ab3e049bbb03e63e68649326a711c55d754231fe1145d2abda47284edd412","kind":"ready","prev":"f4a2f794b24b4b40d3eb4f3fb7096d8bd22d1cbd50a21509d27d936bed3f461c","seq":2}
{"body":{"state":{"heaps":[6,7,1,4],"last_mover":null,"to_move":0,"turn":0},"state_digest":"be2201663d682d492403fd118cdfca36db2887f2e8b18fec84b105f4b50b67bb","turn":0},"hash":"7a9ee071aef8c5e63ce58f3131e1ed11c4aeb49857edca5cd9c666bad11f58d2","kind":"state","prev":"4f6ab3e049bbb03e63e68649326a711c55d754231fe1145d2abda47284edd412","seq":3}
{"body":{"entrant_message":{"move":{"heap":2,"take":1},"note":"{\"heap\": 2, \"take\": 1}","type":"move"},"legal":true,"move":{"heap":2,"take":1},"player":0,"turn":0},"hash":"1793effdb3399a83578ba6fd792a905902a7c93818e6f6b63c3a7889a87f48d2","kind":"move","prev":"7a9ee071aef8c5e63ce58f3131e1ed11c4aeb49857edca5cd9c666bad11f58d2","seq":4}
{"body":{"state":{"heaps":[6,7,0,4],"last_mover":0,"to_move":1,"turn":1},"state_digest":"0b12db71e0edd76d0bc47d16bd3b135d8310d8ef1f19187721567fa60f51af09","turn":1},"hash":"e717cc2c672cf05ab7e912a44dd8272f1db1df5d90500dbd134cb0d39bef5d26","kind":"state","prev":"1793effdb3399a83578ba6fd792a905902a7c93818e6f6b63c3a7889a87f48d2","seq":5}
{"body":{"entrant_message":{"move":{"heap":0,"take":3},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":0,"take":3},"player":1,"turn":1},"hash":"085d4cd2d6ecee2e09a3c1aca7fa5f3941f81174ad20c895b96d443a2cdcacfc","kind":"move","prev":"e717cc2c672cf05ab7e912a44dd8272f1db1df5d90500dbd134cb0d39bef5d26","seq":6}
{"body":{"state":{"heaps":[3,7,0,4],"last_mover":1,"to_move":0,"turn":2},"state_digest":"ce64588edddda8a0ddf0b9cc207ca365dfef06c011e5a2f32e286b229586f4cf","turn":2},"hash":"a66b618cd6bea1c4872eecac14c2d0658593fa4fa806d132fa30afc9f518b6c3","kind":"state","prev":"085d4cd2d6ecee2e09a3c1aca7fa5f3941f81174ad20c895b96d443a2cdcacfc","seq":7}
{"body":{"entrant_message":{"move":{"heap":3,"take":2},"note":"{\"heap\": 3, \"take\": 2}","type":"move"},"legal":true,"move":{"heap":3,"take":2},"player":0,"turn":2},"hash":"74b6f41fd0a891d9e76f6e6621aff6f6b5394502d2fcb9b99d984d96df7c7d07","kind":"move","prev":"a66b618cd6bea1c4872eecac14c2d0658593fa4fa806d132fa30afc9f518b6c3","seq":8}
{"body":{"state":{"heaps":[3,7,0,2],"last_mover":0,"to_move":1,"turn":3},"state_digest":"76166f8952d766e151bdb4f7d26aa64c0708a2fcc391fd7415598d6399ad9885","turn":3},"hash":"ee2d500bef8c14f080c6895bff7280199b8614e4c6ac51935093e85729b0780b","kind":"state","prev":"74b6f41fd0a891d9e76f6e6621aff6f6b5394502d2fcb9b99d984d96df7c7d07","seq":9}
{"body":{"entrant_message":{"move":{"heap":1,"take":6},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":1,"take":6},"player":1,"turn":3},"hash":"424564d79b3537b4ca7a64ca1f245f468d47035b4b10bc8189cf02286c203f4f","kind":"move","prev":"ee2d500bef8c14f080c6895bff7280199b8614e4c6ac51935093e85729b0780b","seq":10}
{"body":{"state":{"heaps":[3,1,0,2],"last_mover":1,"to_move":0,"turn":4},"state_digest":"442d616f335f60b0728e8467b14f9fcd46ae7af58c94046d223ba9313021bd35","turn":4},"hash":"2b7094eeb0d80cb313dbce6031bdbfdb144328cb10fe023c11c6a4b713a3e3a4","kind":"state","prev":"424564d79b3537b4ca7a64ca1f245f468d47035b4b10bc8189cf02286c203f4f","seq":11}
{"body":{"entrant_message":{"move":{"heap":1,"take":1},"note":"Looking at the heaps, I'll take 1 from heap 1.","type":"move"},"legal":true,"move":{"heap":1,"take":1},"player":0,"turn":4},"hash":"c25c10108b5ba71d5e9490ea04f9bbe15e48a882269b69fc3fb63f7a3234d8d0","kind":"move","prev":"2b7094eeb0d80cb313dbce6031bdbfdb144328cb10fe023c11c6a4b713a3e3a4","seq":12}
{"body":{"state":{"heaps":[3,0,0,2],"last_mover":0,"to_move":1,"turn":5},"state_digest":"a566d6d92d0d4a85aa5fb8c758cffaebcaad1126ce00d92443a967196621f1b0","turn":5},"hash":"7a4d620d4b7e2a616af0ab13be1b800ace2755d633081272b3f46e04f6832055","kind":"state","prev":"c25c10108b5ba71d5e9490ea04f9bbe15e48a882269b69fc3fb63f7a3234d8d0","seq":13}
{"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":5},"hash":"38412c4abe556f11cd59e52b4af3f861e449fc3c53c5045bfcb83d8d929f56b9","kind":"move","prev":"7a4d620d4b7e2a616af0ab13be1b800ace2755d633081272b3f46e04f6832055","seq":14}
{"body":{"state":{"heaps":[2,0,0,2],"last_mover":1,"to_move":0,"turn":6},"state_digest":"b4c3e3a51b70734d78da69239950da8d8d509daecac6f7b3f386f3d3c48ba723","turn":6},"hash":"155de0f68965651e5f45d415a1219f9b73637d0cc4dc8175b4da565fce856eff","kind":"state","prev":"38412c4abe556f11cd59e52b4af3f861e449fc3c53c5045bfcb83d8d929f56b9","seq":15}
{"body":{"entrant_message":{"move":null,"note":"Let me think about this position. There are a few directions here and the balance looks delicate, so I want to weigh them before committing.","type":"move"},"legal":false,"move":null,"player":0,"rejected_because":"move must be an object","turn":6},"hash":"c47d66a0aa9633ffa079104f0dd7284fa0db9d2cba307d06a594d006d5413d34","kind":"move","prev":"155de0f68965651e5f45d415a1219f9b73637d0cc4dc8175b4da565fce856eff","seq":16}
{"body":{"detail":"move must be an object","phase":"move","player":0,"reason":"illegal_move","turn":6},"hash":"c82967ba97eac4d9955dfe39b3d9a046d3f74a94955a830a2e8907645ec31910","kind":"forfeit","prev":"c47d66a0aa9633ffa079104f0dd7284fa0db9d2cba307d06a594d006d5413d34","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":"30ffb69f5f37eadc54bd3b8f9cb075ba7010b071cbe2bb58db4b52928e1e86ad","kind":"result","prev":"c82967ba97eac4d9955dfe39b3d9a046d3f74a94955a830a2e8907645ec31910","seq":18}
