ammo-reload · git:20260913.0472540 · 2026-09-13 · sha256 d19ee0f73719aad2
ammo-reload git:20260913.0472540A
Immutable. This exact content never changes and is served at /api/v1/blob/d19ee0f73719aad2.
--- name: ammo-reload description: Use when weapons need magazine/chamber/reserve ammunition, shot consumption and reload transfer with atomic resource updates, interruption/cancel policy and semantic input actions. --- # Ammo and reload ## Compatible modes `infinite` | `mag-and-reserve` | `one-shot-chamber` ## Resource contract Publish weapon/ammo resource IDs, magazine/chamber capacity, reserve ownership, fire consume boundary, reload transfer policy, cancel/interruption state and a stable **reload transaction** ID for each committed transfer. ## Rules 1. Fire/reload are semantic actions routed through `input-design`; do not require reload and interact to use universally different physical keys. 2. A shot consumes ammo once at the authoritative fire/shot-commit event. Muzzle flash/audio/animation never spends ammunition. 3. Reload magazine/reserve movement is **atomic** at the published commit boundary (or explicit staged transfers when the design uses them). Cancellation cannot invent or destroy rounds. 4. Repeated/resimulated reload callbacks use the same reload transaction identity and remain idempotent. 5. Firing/ADS/hip/cancel behavior during reload is project action-graph data; shared/split ammo pools are declared rather than assumed. 6. Inventory/shop/economy replenishment uses their own transaction owners and stable ammo resource ID. ## Accept Reconcile magazine/chamber/reserve across fire, exact-empty, partial reload, cancel before/after commit, duplicate callback, weapon swap and insufficient reserve. Total ammo changes only through named consumption/grant transactions.