{ "status": "working scratch core, measured resource dependency pending; not integrated or native-qualified", "scope": "Default prison or independently authored static crash aftermath; no aircraft control or alternate admission/loadout.", "implementation": [ "Once-only server settings choice frozen before first scenario Prepare, replicated int StartMode; invalid choice refuses preparation and later saved edits cannot change this round.", "Guarded PREPARING->RADIO_SEARCH requires frozen crash choice and successful full scenario/extraction/environment readiness. Existing default phase edges retained. Both initial exit paths reset dormant force clocks; production prison AI release/listeners receive actual RADIO_SEARCH.", "Fresh runtime single-start definition becomes owned empty crash site+one static wreck prop, preserving finite container/stock/map/site ID and internal PRISON start-slot role. Removes only start guards/route/responders/old props; no new forces or grants.", "Crash transformation follows WB-only definition overrides. It forces regular generated survey; terrain-independent scheduler already calls same common survey. Both keep full original start/cache square plus padded measured wreck volume, rotated around actual heading.", "Explicit prison escape service mode guard; standard spawn/one-life/reconnect/preload unchanged. Scenario normal catalog/generated allowlist includes crash-start while exact latest patrol-hq helper remains byte-for-byte." ], "resource_contract": { "owner": "convoy_supply_pool", "class": "ERR_CrashSiteResources", "methods": [ "SitePrefab()", "WreckPrefab()", "Bounds(out vector minimum,out vector maximum)" ], "measurement": "No guessed constants. Current resource draft Bounds returns false until root measured exact native replicated wrapper. Core Configure and survey fail closed if false.", "geometry": "Measured local bounds must be finite/nondegenerate, coordinates and extents bounded30m; offset places nearest hullX at12m; overall offset<=40m. Rounded measured footprint +1m padding, halfsize<=20m, vertical extent+1<=20m. These are refusal caps, not invented dimensions. Existing original16spawn slots and cache remain in original10m survey." }, "verification": { "new_test": "tests/test_crash_start.py", "exit": 0, "actual_methods": [ "ERR_StartRules.Valid/Geometry", "ERR_StartSetup.IsCrash/Geometry/Configure", "ERR_GameMode.FreezeStartMode", "ERR_GameMode.Transition admission prefix", "ERR_MissionRules.Terminal/CanTransition", "ERR_CampTerrain.Site" ], "boundaries": "Resource measurement, definition.Valid, native actor allocation and trace/terrain primitives doubled; source-order checks bind full startup, replicated getter, prison guard and both placement callers. Actual native geometry/replication/crash route remain pending.", "baseline_red": "Not claimed: this adds an absent feature; new-class behavior tested directly." }, "unmodified": [ "ERR_SpawnLogic / roster / inventory admission", "SiteService finite stock and owned cleanup", "TerrainSites (shared survey used without edits)", "PrisonAI production hold/release", "latest patrol-hq finite responders and runtime radius/queue fixture", "settings/admin/UI files owned by separate agent", "live successor and original" ] }