{"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":"5d52a461498a7ddbd6a85f34b30fa85e184ce34f5c88225141f71d63eab8709e","name":"solver-harness","script":{"path":"python.exe","sha256":"5341746f92483a93e44c313de830f2fba2956f0759094404a16b2fed06c9a2ed"},"seat":0},{"claimed_model":"stub:v1","declared_env":[],"manifest_digest":"8297add5250822db579614e9a681a8721b256fcf8d447e3e0632de5acdf813ea","name":"naive-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":"2474aff8acaf16cf","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":1006},"hash":"43007de6f001f3f4e354d9b3b753e1327b4b96cbd82ed352f4f7400de95d26ad","kind":"header","prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":0}
{"body":{"entrant_message":{"backend":"stub:v1","entrant":"solver-harness","type":"ready","version":"2"},"player":0},"hash":"3698fcd40112568193b2980cc25a8b774ebd5087a601064609e4820002b03ef1","kind":"ready","prev":"43007de6f001f3f4e354d9b3b753e1327b4b96cbd82ed352f4f7400de95d26ad","seq":1}
{"body":{"entrant_message":{"backend":"stub:v1","entrant":"naive-harness","type":"ready","version":"2"},"player":1},"hash":"87f0a40b0e318e4ad11de7e0a163a99bde13ec9f4d12d7dad91cdb9e8035c6dc","kind":"ready","prev":"3698fcd40112568193b2980cc25a8b774ebd5087a601064609e4820002b03ef1","seq":2}
{"body":{"state":{"heaps":[1,2,4,1],"last_mover":null,"to_move":0,"turn":0},"state_digest":"0392d6829c51ce6165d89c4e576799005df036ff22e53dd5636c7de25d1a6794","turn":0},"hash":"4ea44b09e0450b41b97b87df7442497bc16a02d38494279d36bb802097ac66c9","kind":"state","prev":"87f0a40b0e318e4ad11de7e0a163a99bde13ec9f4d12d7dad91cdb9e8035c6dc","seq":3}
{"body":{"entrant_message":{"move":{"heap":2,"take":2},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":2,"take":2},"player":0,"turn":0},"hash":"df54471e489b4e865edfe423f59f4a2405c486b9ca30ebec9aec58e71651519f","kind":"move","prev":"4ea44b09e0450b41b97b87df7442497bc16a02d38494279d36bb802097ac66c9","seq":4}
{"body":{"state":{"heaps":[1,2,2,1],"last_mover":0,"to_move":1,"turn":1},"state_digest":"d43c0a28290cc83aa7cf05d9213fe75ade97ce2c565ac044c15cb974a6e265f0","turn":1},"hash":"88498f948ef9bca859d81a379c88bfbd3d14daf1860465f376173380e108da2f","kind":"state","prev":"df54471e489b4e865edfe423f59f4a2405c486b9ca30ebec9aec58e71651519f","seq":5}
{"body":{"entrant_message":{"move":{"heap":2,"take":1},"note":"Looking at the heaps, I'll take 1 from heap 2.","type":"move"},"legal":true,"move":{"heap":2,"take":1},"player":1,"turn":1},"hash":"2402f05aa884fcfafa65086aa8e1ae279436f4d612d2017212f72098d8e48e82","kind":"move","prev":"88498f948ef9bca859d81a379c88bfbd3d14daf1860465f376173380e108da2f","seq":6}
{"body":{"state":{"heaps":[1,2,1,1],"last_mover":1,"to_move":0,"turn":2},"state_digest":"9e43f4601361ff51dcc61b11b64bb710d66103a8a319ad21bf9e39866f270763","turn":2},"hash":"ed3abb17569f68d58459ce9f304b525ce83b2fa3691bc3e0bb7a7406a9db0237","kind":"state","prev":"2402f05aa884fcfafa65086aa8e1ae279436f4d612d2017212f72098d8e48e82","seq":7}
{"body":{"entrant_message":{"move":{"heap":1,"take":1},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":1,"take":1},"player":0,"turn":2},"hash":"5c8b85aa73864709b5de8ca25f9088e6fbf9d5d3fff61129a9788b283b66cc58","kind":"move","prev":"ed3abb17569f68d58459ce9f304b525ce83b2fa3691bc3e0bb7a7406a9db0237","seq":8}
{"body":{"state":{"heaps":[1,1,1,1],"last_mover":0,"to_move":1,"turn":3},"state_digest":"c06552b84ad03f7fae06b05f702c94af2eca5ef889f88187d1f4a9f80a785754","turn":3},"hash":"f33082c367ee5a14861d3a1e75b1aae48e3cf44793806dde594e3afb2c6de088","kind":"state","prev":"5c8b85aa73864709b5de8ca25f9088e6fbf9d5d3fff61129a9788b283b66cc58","seq":9}
{"body":{"entrant_message":{"move":{"heap":2,"take":1},"note":"Looking at the heaps, I'll take 1 from heap 2.","type":"move"},"legal":true,"move":{"heap":2,"take":1},"player":1,"turn":3},"hash":"a07ef5592149fea8597a85fbe8d167e6281910aa1cf171681ac1f3f72786a41e","kind":"move","prev":"f33082c367ee5a14861d3a1e75b1aae48e3cf44793806dde594e3afb2c6de088","seq":10}
{"body":{"state":{"heaps":[1,1,0,1],"last_mover":1,"to_move":0,"turn":4},"state_digest":"61b4edb7b539abe2e56ff130df5f9a68325fb24d27f3b509fb2ef41c665af883","turn":4},"hash":"ff97f959cf211c7984b293bdbe17ecd2d1456faf178dcf377e1894af4f9ae176","kind":"state","prev":"a07ef5592149fea8597a85fbe8d167e6281910aa1cf171681ac1f3f72786a41e","seq":11}
{"body":{"entrant_message":{"move":{"heap":1,"take":1},"note":"source=model","type":"move"},"legal":true,"move":{"heap":1,"take":1},"player":0,"turn":4},"hash":"0b152e62d590d513e7d653b2748c416400e58a5cbdcccc5ff0c77c9d2017b85b","kind":"move","prev":"ff97f959cf211c7984b293bdbe17ecd2d1456faf178dcf377e1894af4f9ae176","seq":12}
{"body":{"state":{"heaps":[1,0,0,1],"last_mover":0,"to_move":1,"turn":5},"state_digest":"63592dd96c6045267623f6e806b490e2bf0ab47241390f20539c7200637b275d","turn":5},"hash":"4cdd4810a0067e2745670f0edda0e4468cd5bf1c220f11351c6bf076463b9530","kind":"state","prev":"0b152e62d590d513e7d653b2748c416400e58a5cbdcccc5ff0c77c9d2017b85b","seq":13}
{"body":{"entrant_message":{"move":{"heap":0,"take":1},"note":"Looking at the heaps, I'll take 1 from heap 0.","type":"move"},"legal":true,"move":{"heap":0,"take":1},"player":1,"turn":5},"hash":"6b317baf0122fcd24ea6430b16fab67b234f0c0a9c2d10a1f7a9fc8b2947f863","kind":"move","prev":"4cdd4810a0067e2745670f0edda0e4468cd5bf1c220f11351c6bf076463b9530","seq":14}
{"body":{"state":{"heaps":[0,0,0,1],"last_mover":1,"to_move":0,"turn":6},"state_digest":"282f676d96baecacd544df0bd39483f8bdc40a73ae5f4842a46b8fefe33db9be","turn":6},"hash":"e9513dc902e6e4b37dba0a50073358afeeae5906d3e62a7282f41997583f9f35","kind":"state","prev":"6b317baf0122fcd24ea6430b16fab67b234f0c0a9c2d10a1f7a9fc8b2947f863","seq":15}
{"body":{"entrant_message":{"move":{"heap":3,"take":1},"note":"source=model","type":"move"},"legal":true,"move":{"heap":3,"take":1},"player":0,"turn":6},"hash":"02b17baa168bc3c5e835574397e7177d918a6ef4b0488bfd0229301d9a4bf0d5","kind":"move","prev":"e9513dc902e6e4b37dba0a50073358afeeae5906d3e62a7282f41997583f9f35","seq":16}
{"body":{"state":{"heaps":[0,0,0,0],"last_mover":0,"to_move":1,"turn":7},"state_digest":"71d4535d76d6df0754afb1975d4765c0d6323a970461f941ae135dc3305d10e9","turn":7},"hash":"7c4a2b9230de1aee7a21317a8d4e552134fe7bfbd955b0621203eb9031eda8b5","kind":"state","prev":"02b17baa168bc3c5e835574397e7177d918a6ef4b0488bfd0229301d9a4bf0d5","seq":17}
{"body":{"decisive":true,"moves":7,"points":{"0":1,"1":0},"reason":"took_last_object","scored_from":"referee_state_only","seats":{"0":"solver-harness","1":"naive-harness"},"self_report_excluded":true,"winner":0},"hash":"d0332f5144214df29ba4e63e87cdf109cb3e5845930c297ae1bc6f5812db8128","kind":"result","prev":"7c4a2b9230de1aee7a21317a8d4e552134fe7bfbd955b0621203eb9031eda8b5","seq":18}
