# Empty-magazine return at ground resupply The user-owned AI extension returns unused compatible empty magazines to its supply carrier. The successor now implements a bounded version inside the existing authorized ground resupply transaction. This helps an original soldier receive a finite stock magazine when empty magazines occupy available inventory space. The transaction first attempts its ordinary incoming-capacity check. Only if capacity is blocked does it inspect at most 128 recipient items for one exact empty magazine with zero rounds, a valid positive capacity, the same magazine-well type as the selected incoming magazine and `IsUsed() == false`. The item must belong exclusively to a managed storage under the original recipient; the original truck must have native capacity for it. The same stopped-truck, original driver/force/recipient ownership, compatible carried weapon and unobstructed physical-access checks remain in force. At most one reverse native move is submitted. A separate callback and acknowledgement track that move. Both callback success and exact destination storage ownership are required before delivery can proceed. A subsequent slow tick revalidates the original incoming stock, mission/actor authority, physical access and capacity before submitting its one incoming move. Late or contradictory callbacks from the return cannot acknowledge the incoming operation. Each phase expires after eight seconds; the complete transaction has a sixteen-second ceiling. Stop, authority loss or timeout prevents further submissions, while any accepted uncertain operation remains quarantined for observation. An attempted return conservatively spends the selected incoming stock identity at the coordinator even if the incoming move never begins. Neither identity is automatically retried after native submission. A returned empty magazine is not adopted into the truck's original stock snapshot. No item is created, deleted or refilled, and no reload is forced. Only the ground infantry resupply coordinator opts in. Existing aircraft supply callers retain their previous single-move behavior. The HQ still decides which original formations meet using delivered reports; this local inventory operation does not reveal new positions to HQ or create response forces. ## Verification and limits The [complete repository check](evidence/check-2026-09-30-empty-return.log.txt) passes all **234 registered regression programs**. The expanded actual-method tests cover invalid/in-use/nonempty/foreign magazines, native capacity and ownership, bounded enumeration, exact storage proof, inline success with API refusal, contradictory and late callbacks, stop at each phase, original driver/capture loss, immutable deadlines and failure after a confirmed return. Tests execute the coordinator with the real transaction to verify incoming identity retention, unresolved-operation quarantine and exactly-once delivery accounting. The [hidden/muted native integration run](evidence/native-2026-09-30-empty-return-integration/report.json) compiles the combined source and completes 52 scripted escape-route assertions and one round, with zero script/runtime failures. Thirteen installed-resource errors remain and keep strict qualification failed. The runner confirms unchanged source/seven external inputs and successful private cleanup. Source manifest: `5957e6dd81fa8e496d4b7c2775802e73879dcbc743f0e7f6fb798eec06d804a1`. Native escape-route completion is integration evidence only: that fixture does not exercise the empty-return branch or autonomous resupply. Direct native reverse inventory movement, ordinary multi-truck rendezvous, player contention and multiplayer remain unqualified. The earlier packaged development candidate remains untouched and predates this feature. Provenance: behavior reference is the authorized owner's `escapists-ai/Scripts/Game/EscapistsAI/EAI_AmmoSupply.c`, `RecycleEmpty`, SHA-256 `97587483227699b78e78f1223f46ebf286d458ffcf06b79f458807b6e95f969e`. The successor implementation uses its existing transaction/ownership boundaries and imports no protected original Escapists code or resources. See [migration provenance](migration-provenance.json).