{"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":"e412f8a6a99823ee","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":1003},"hash":"e9f60bd24f869a213dd4cd9e1e207497bd77c183ded7549d25d065678381f426","kind":"header","prev":"0000000000000000000000000000000000000000000000000000000000000000","seq":0}
{"body":{"entrant_message":{"backend":"stub:v1","entrant":"solver-harness","type":"ready","version":"2"},"player":0},"hash":"dff1368b61505f00d038bc00d73d7721d0447ab46465945524662c29d379ef17","kind":"ready","prev":"e9f60bd24f869a213dd4cd9e1e207497bd77c183ded7549d25d065678381f426","seq":1}
{"body":{"entrant_message":{"backend":"stub:v1","entrant":"naive-harness","type":"ready","version":"2"},"player":1},"hash":"f7d544df53d8052ea78b9bf7d767ab0e40563368576f84a5583a10726a04c5aa","kind":"ready","prev":"dff1368b61505f00d038bc00d73d7721d0447ab46465945524662c29d379ef17","seq":2}
{"body":{"state":{"heaps":[5,3,2,6],"last_mover":null,"to_move":0,"turn":0},"state_digest":"7abbe05623c2bb5a724083242dad198ee767c144663d10f26f4854887239053b","turn":0},"hash":"3ca2922d59fc11fc30cd1bead785472b8524a86831ad3e01f2b4c76557644bec","kind":"state","prev":"f7d544df53d8052ea78b9bf7d767ab0e40563368576f84a5583a10726a04c5aa","seq":3}
{"body":{"entrant_message":{"move":{"heap":1,"take":2},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":1,"take":2},"player":0,"turn":0},"hash":"d67b9c4f8ca18a8f1fa9561b66cf7b4b1ef62a90ec00b2d99d2ae0e236b090ff","kind":"move","prev":"3ca2922d59fc11fc30cd1bead785472b8524a86831ad3e01f2b4c76557644bec","seq":4}
{"body":{"state":{"heaps":[5,1,2,6],"last_mover":0,"to_move":1,"turn":1},"state_digest":"ebd81ad02fc3c999a520cc31e018ee0cbb908e766794cd217d24ab95d4bd8eb8","turn":1},"hash":"0414b1557d63c5c7da51c2c0250430a0d4e69c774dadbc5dc9d5925c9d1f96f8","kind":"state","prev":"d67b9c4f8ca18a8f1fa9561b66cf7b4b1ef62a90ec00b2d99d2ae0e236b090ff","seq":5}
{"body":{"entrant_message":{"move":{"heap":0,"take":4},"note":"{\"heap\": 0, \"take\": 4}","type":"move"},"legal":true,"move":{"heap":0,"take":4},"player":1,"turn":1},"hash":"4cabb98b4330537f0cca1280bb09cd037c714568c43eb09d9e10c24f392327a2","kind":"move","prev":"0414b1557d63c5c7da51c2c0250430a0d4e69c774dadbc5dc9d5925c9d1f96f8","seq":6}
{"body":{"state":{"heaps":[1,1,2,6],"last_mover":1,"to_move":0,"turn":2},"state_digest":"21c13bda3a82d36bf71bd5cfe3aabb5ac30c77b10449fc662e45a83f238aa580","turn":2},"hash":"13791f2644299aad9b654386af04b24b6ed4b277f3e5117d61bdca9ea34be84b","kind":"state","prev":"4cabb98b4330537f0cca1280bb09cd037c714568c43eb09d9e10c24f392327a2","seq":7}
{"body":{"entrant_message":{"move":{"heap":3,"take":4},"note":"source=fallback:rejected_model_answer","type":"move"},"legal":true,"move":{"heap":3,"take":4},"player":0,"turn":2},"hash":"25f73fc61ca0d54627899fc30f598f991d83a73706bccdae9891f3e8260ed563","kind":"move","prev":"13791f2644299aad9b654386af04b24b6ed4b277f3e5117d61bdca9ea34be84b","seq":8}
{"body":{"state":{"heaps":[1,1,2,2],"last_mover":0,"to_move":1,"turn":3},"state_digest":"8144e73c6498a8037153bcb113045f2b00745f6c10264611fb67bfec1cadea03","turn":3},"hash":"e03a28d34586b423fdf2f7e151d7b7a037441367f2e78913ca4e77cd33552960","kind":"state","prev":"25f73fc61ca0d54627899fc30f598f991d83a73706bccdae9891f3e8260ed563","seq":9}
{"body":{"entrant_message":{"move":{"heap":3,"take":1},"note":"{\"heap\": 3, \"take\": 1}","type":"move"},"legal":true,"move":{"heap":3,"take":1},"player":1,"turn":3},"hash":"feaa14d0a001f968e7e173c12f572758f2139bd3bf612f33bb9c8d27ec1ed955","kind":"move","prev":"e03a28d34586b423fdf2f7e151d7b7a037441367f2e78913ca4e77cd33552960","seq":10}
{"body":{"state":{"heaps":[1,1,2,1],"last_mover":1,"to_move":0,"turn":4},"state_digest":"7c1db3daec90aa9782a1a553db6a509f6c134b4ebac314b5ccae9d1e83cad7cf","turn":4},"hash":"b7da5faf9fe4ce849b85105a3d2babe7e562556cf8c1b82db7ff900a1ab08775","kind":"state","prev":"feaa14d0a001f968e7e173c12f572758f2139bd3bf612f33bb9c8d27ec1ed955","seq":11}
{"body":{"entrant_message":{"move":{"heap":2,"take":1},"note":"source=model","type":"move"},"legal":true,"move":{"heap":2,"take":1},"player":0,"turn":4},"hash":"f5376142d3d02626baf42774e7f6ef32bb7a95a6af1562d876fbf8dd444a61ca","kind":"move","prev":"b7da5faf9fe4ce849b85105a3d2babe7e562556cf8c1b82db7ff900a1ab08775","seq":12}
{"body":{"state":{"heaps":[1,1,1,1],"last_mover":0,"to_move":1,"turn":5},"state_digest":"0554771cb20f965797dc861b96874c3b37c864357926886e9d8ff62d1e3243dc","turn":5},"hash":"f76e09fd08b55cdd45a5950ab78969d1f08b42cdcef85f0b8b603d2a55f23f52","kind":"state","prev":"f5376142d3d02626baf42774e7f6ef32bb7a95a6af1562d876fbf8dd444a61ca","seq":13}
{"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":5},"hash":"c93d62629d79126ab21d9983c7bd04df88e0d410b2bccf9b0cc1d47a1ce61aa7","kind":"move","prev":"f76e09fd08b55cdd45a5950ab78969d1f08b42cdcef85f0b8b603d2a55f23f52","seq":14}
{"body":{"state":{"heaps":[1,1,0,1],"last_mover":1,"to_move":0,"turn":6},"state_digest":"28ab6b585bf7ebbe6979edd97d435f61fc56a7d82afcc4fe9092e348b6192fae","turn":6},"hash":"6bce2082c1427ef8d8a451d2df7263e3fc2dbb9050b804c18742d97bffe28f9e","kind":"state","prev":"c93d62629d79126ab21d9983c7bd04df88e0d410b2bccf9b0cc1d47a1ce61aa7","seq":15}
{"body":{"entrant_message":{"move":{"heap":1,"take":1},"note":"source=model","type":"move"},"legal":true,"move":{"heap":1,"take":1},"player":0,"turn":6},"hash":"f2f2da739b6e90e399b414e332850297819d5fdabe159d9fa14041e5de998449","kind":"move","prev":"6bce2082c1427ef8d8a451d2df7263e3fc2dbb9050b804c18742d97bffe28f9e","seq":16}
{"body":{"state":{"heaps":[1,0,0,1],"last_mover":0,"to_move":1,"turn":7},"state_digest":"5e31dafe26bea4e6855f84478bdefed23df6e0db24aed8df279783b164767d21","turn":7},"hash":"0f4a90e84806ab10b5b15e9141478335db03e99e7c543deb0a918572796f52e9","kind":"state","prev":"f2f2da739b6e90e399b414e332850297819d5fdabe159d9fa14041e5de998449","seq":17}
{"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":7},"hash":"0b4b30a24f0232afc2e350c4662e7b8b2353e72149fc387f3fba3dde792752b6","kind":"move","prev":"0f4a90e84806ab10b5b15e9141478335db03e99e7c543deb0a918572796f52e9","seq":18}
{"body":{"state":{"heaps":[0,0,0,1],"last_mover":1,"to_move":0,"turn":8},"state_digest":"2a1e5454b77fba31fa8f4d77c40e329cce1db2a3799e55a605d6c7cc535ed14f","turn":8},"hash":"5fd74f86f6cd40569edff85d5abe657202e02c029745198763a59bd3544781c0","kind":"state","prev":"0b4b30a24f0232afc2e350c4662e7b8b2353e72149fc387f3fba3dde792752b6","seq":19}
{"body":{"entrant_message":{"move":{"heap":3,"take":1},"note":"source=model","type":"move"},"legal":true,"move":{"heap":3,"take":1},"player":0,"turn":8},"hash":"3ec892d3bfc6acba4d8278b545edd2ec8dcd06c69366533697e3f8c1d64ea86c","kind":"move","prev":"5fd74f86f6cd40569edff85d5abe657202e02c029745198763a59bd3544781c0","seq":20}
{"body":{"state":{"heaps":[0,0,0,0],"last_mover":0,"to_move":1,"turn":9},"state_digest":"a66e6b7a9d666b66b6885cb5e0d0bbbf31f0ea91f385903b2cc4ce92eb9e3a3d","turn":9},"hash":"b020ceb669f604a188e1385048e1a96c93955c896ea734495cb5a90890bbbd93","kind":"state","prev":"3ec892d3bfc6acba4d8278b545edd2ec8dcd06c69366533697e3f8c1d64ea86c","seq":21}
{"body":{"decisive":true,"moves":9,"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":"4d49d7d284763526cf4aade7f28f235fdf7862074fa186e0b010ea235f6b46b1","kind":"result","prev":"b020ceb669f604a188e1385048e1a96c93955c896ea734495cb5a90890bbbd93","seq":22}
