{ "complete": true, "decision": "No demonstrated extraction/recovery admission defect found in bounded requested lifecycle review. No patch proposed.", "source_and_inspected_test_sha256": { "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "91357099b4e0401196b67d48963be54be30e56bdba57cdac67dc20b8ebb883e9", "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "86f9a7769e3ccb19fc61127fe2fee2ad0dd825487a5cd59f334de8b9741c93cf", "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "c038dac0f749bd29ebc35a4e952904b41a34417ba738904d5efcd1833a263e0b", "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", "addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "89a29c03ba225acbbb9fa3c58a721aced91a77bc0c77046d697005a6d7c48bb9", "addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "f7abc38ad8fdc375ce7fa63a65f0bade027d22b37e09de5e3f94ba8c3c63cc41", "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "e6f22813f7a04e2c0ea000d054407191f2be8badfa6c51e062e9dbf84b95c67b", "tests/test_recovery_policy.py": "adc4966ab92f0849d08636d93da5bd02b9162d1ad7369b325a1a357903abaa55", "tests/test_command_maintenance.py": "be2c942aa11a5f874448e94f06925f2f1de2210a14881fb7e486842119cb673c", "tests/test_native_end_lifecycle.py": "8b187723c9039e68e3e590c812c91dcffe1e5917d4e450ed798dc177888fda7a", "tests/test_casualty_reservation_death.py": "fd68dce04ea48ee2a22fac499c32a5c53847a25e3f14eaba3f50437d2c040f25" }, "reviewed_sequences": [ { "sequence": "Some original players aboard escape helicopter, others dead/unconscious/left behind", "evidence": "ExtractionService.Tick snapshots living original participant bodies actually aboard into account-ID set; non-aboard/dead participants remain counted as left behind. It does not require consciousness or current connection for reserved original passengers." }, { "sequence": "Late death/unconscious state near boundary", "evidence": "GameMode.ServerTick checks Extraction.Tick first, then Active before recovery/defeat. Successful extraction resolves victory synchronously and stops services. Once resolved, extraction State guard prevents later tick mutation; dead at snapshot is excluded, living unconscious is included." }, { "sequence": "Original aircraft destroyed before departure or before observed boundary success", "evidence": "Extraction.Tick tests original aircraft Alive before boundary/phase success; loss resolves defeat from any started nonterminal phase. No replacement spawn or alternate aircraft adoption exists." }, { "sequence": "Aircraft crosses boundary without participants aboard", "evidence": "Empty escapee snapshot leaves WAITING; it cannot invent victory. Partial escape with at least one living original aboard ends round immediately, consistent with guide and winner/left-behind behavior." }, { "sequence": "Connected winner IDs change or are reused", "evidence": "Escape result is frozen by AccountId. ConnectedWinners requires current roster mapping points to the same connected life before emitting ConnectionId. New late participants cannot enter during EXTRACTION via PlayerLifeRules.CanEnter." }, { "sequence": "Casualty ticket dies, disconnects or aircraft/round ends", "evidence": "PhysicalTicket distinguishes committed physical identity from new authorization. Committed uncertainty retains exact seat until observed completion/timeout; ObserveTicket and MaintainPending reject aircraft loss/terminal state. Stop cancels maintenance and resolves exact tickets; no new movement request is issued." }, { "sequence": "Recovery vs defeat grace", "evidence": "Recovery keeps living reserved original rescuers and improving/treatable/naturally recoverable bodies; only continuous stalled state triggers30s defeat. All-dead no-survivor timer is separate, and neither runs after extraction resolved terminal." } ], "limitations": [ "Read-only source and existing test inspection only; no new compiler/native run, per parent gate. Existing full292 evidence belongs to parent and was not rerun or expanded by this review.", "One-second extraction polling semantics are unchanged; this does not prove every transient native movement/death boundary or multiplayer timing.", "No speculative recovery policy or observer ownership redesign undertaken." ], "target_edits": false, "original_edits": false, "native_runs": false, "compiler_runs": false }