Files
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

41 lines
5.8 KiB
JSON

{
"status": "Design proposal only. No production change, prototype, or native run.",
"feature": "A finite original armed ground vehicle can receive a radio order to hold a road ahead of remembered player travel, then resume its prior route.",
"demonstrated_gap": {
"owned_original": "escapists-ai/Scripts/Game/EscapistsAI/EAI_HQRoadblocks.c:103-109 Remember snapshots delivered movement;260-317 Plan projects ahead onto roads and orders physical vehicles;320-345 UpdateUnit boards, drives and holds. EAI_HQ.c:937 forwards received reports.",
"successor": "ERR_HQRoadIntercept.Select only provides an infantry task destination. ERR_HQUnit.Eligible excludes seated actors. ERR_HQ.PlanConvoyTask only emits hold/resume-authored-route combat orders; ERR_ConvoyService.ApplyCombatOrder contains no predictive destination. Existing infantry/mine road posts therefore do not implement motorized interception.",
"documentation": "docs/ai-feature-migration.md:547 onward explicitly calls infantry interception partial roadblock migration; stale earlier missing row is not relied upon."
},
"first_slice": [
"One simultaneous temporary detour using one already-registered original armed escort of a live ready convoy; no new vehicles, crew, reserve stock, spawning, BMP escalation or engineer deployment. Never use supply/medical trucks. If no admissible original escort exists, do nothing.",
"Consume delivered ERR_HQBelief snapshot plus fresh complete own-vehicle status; plan from those coordinates, not target.GetOrigin or global player enumeration. Pin belief ID/revision, original observation time and detached destination in downlink.",
"Choose bounded native road segment ahead of credible ground travel; require vehicle-sized placement/road-width clearance and settlement protection. The infantry Standable box is not an adequate vehicle preflight. Do not silently adopt original 700-2500m or live-player exclusions.",
"Use actual native move/hold waypoints only after existing physical radio downlink completes; recheck same belief revision/freshness and original vehicle/crew/ledger ownership at delivery. Position verification at arrival concerns own vehicle only.",
"Preserve RouteIndex and route ownership. Cancel/expire safely and resume the untouched authored route only while exact original ownership remains eligible. Fixed deadline and one attempt per original delivered revision; no indefinite replenishment/retry."
],
"required_integration_constraints": [
"Convoy Tick currently automatically advances/recreates Waypoint unless Combat.Held or SupplyHeld. A dedicated owned intercept state must gate that path; adding a second independent waypoint controller would conflict. Do not impersonate SupplyHeld or alter Combat.Held semantics.",
"Reserve after existing convoy combat and infantry/mounted/mine logistics planning. Atomically exclude LogisticsReservation, SupplyToken, SupplyHeld, pending downlinks, active combat, captured or changed crew, outstanding inventory transactions and depot claims. Existing claim APIs must also reject intercept ownership in the reverse direction.",
"ReserveLogistics rejects seated support crews; ReserveMountedLogistics is an atomic donor/recipient pair with a restricted token range. Neither can be reused unchanged for a single-escort interception. Add an exact single-vehicle ownership reservation with a distinct reviewed token domain and conditional release.",
"Do not select an Arrived vehicle on the assumption it is idle: ConvoyService.Tick stops/releases the task once all vehicles arrived. First slice must stay within a live original task. Later post-route reuse requires a separate ledger handoff.",
"Original report-based expiry, global force cap and active/pending destination deconfliction still apply. The original squad is counted once and cannot simultaneously receive infantry pursuit."
],
"proposed_interfaces": [
"New ERR_HQMountedInterceptRules for bounded report eligibility, road-ahead selection and finite lifetime policy; reuse scalar memory data, not entity telemetry.",
"New ERR_HQMountedIntercept controller owned by HQ: Plan(now), Deliver(original unit, now), Tick(now), Stop(); one retained original vehicle/task/receipt/group and own waypoint/token.",
"Narrow ERR_ConvoyService hook for atomic claim, temporary waypoint suppression and conditional authored-route restoration; HQ dispatches through ordinary pending downlink with an explicit order kind."
],
"validation": [
"Actual methods: no order from local/undelivered evidence; frozen report does not change when target moves; old revision/stale delivery refuses.",
"Actual planning/admission: excludes supply vehicles, altered original crew, released/arrived task, combat, any inventory/depot token or unresolved transaction; exact count and destination cap controls.",
"Actual lifecycle: pending-radio loss leaves route untouched; delivered detour suppresses ordinary RouteIndex advancement; expiry and Stop remove only owned waypoint and claim; foreign/replaced claim never cleared; no force creation/refund.",
"One opt-in native test, separately authorized later: existing armed original escort physically receives radio order, moves to road, holds, then resumes preserved route; observe native crew, route index and resource identities. Until that passes, source tests alone do not qualify driving or interception effectiveness."
],
"source_sha256": {
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "1f129b979abcb86ee10622e2866aa987807f070f2ab2d818af015e12a8bcfd8c",
"addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "0897e82d7805ef56f05f2b9c23903280285ea6bfa51796a2df86bb564ece78f7",
"addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "e1d5dff5584f1bf12c146df510c860c3e0e046c989ff758def88ecf6b49c6392"
},
"original_sha256": "128776f0b448162ee36cfc71b2a38d2cd06d6d6e4679253f215896aa3fcabb98"
}