| ActionKind variants: Volley, AimedShot, FireArrows, StopFireArrows in mc-core/src/action.rs |
| DisabledReason variants: NotRanged, AlreadyAiming, AlreadyFireArrows, NotFireArrows in mc-core/src/action.rs |
| UnitCapability state fields: is_aiming, is_fire_arrows in mc-core/src/action.rs |
| MapUnit state fields: aimed_shot_pending, is_fire_arrows in mc-turn/src/game_state.rs |
| legal_actions gates: ranged keyword check with toggle logic in mc-core/src/action.rs |
| Handlers: handle_aimed_shot, handle_fire_arrows, handle_stop_fire_arrows in mc-turn/src/action_handlers.rs |
| Combat hooks: aimed_shot_defence_reduction (50%), attacker_aimed_shot context field in mc-combat/src/keywords.rs and resolver.rs |
| JSON keyword wiring: ranged key extended with volley/aimed_shot/fire_arrows in unit_actions.json |
| Vocabulary keys: action_volley, action_aimed_shot, action_fire_arrows, all tooltip_ and disabled_reason_ keys in vocabulary.json |
| Tests (legal_actions): 4 tests in mc-core/src/action.rs — ranged_unit_has_volley_aimed_shot_fire_arrows, ranged_aimed_shot_disabled_when_already_aiming, ranged_fire_arrows_toggles, non_ranged_unit_has_no_volley_aimed_shot_fire_arrows, all_new_action_kinds_round_trip_as_str |
| Tests (combat hooks): aimed_shot_flag_triggers_defence_reduction, aimed_shot_defence_reduction_is_50_pct in mc-combat/src/keywords.rs |
| AI policy: documented no-hook decision in mc-ai/src/tactical/movement.rs |
| GDScript: signal/KIND_TO_SIGNAL wiring delegated to ui-wiring2 (sent message 2026-05-01) |
| Volley AoE queue-drain: pending_volley_requests + process_volley_requests phase + queue_volley bridge implemented — mc-turn/src/game_state.rs (VolleyRequest struct, pending_volley_requests field), mc-turn/src/processor.rs (process_volley_requests fn, step() call), api-gdext/src/lib.rs (queue_volley #[func]). p2-53 closeout 2026-05-03. |
| DEFERRED (documented): Fire Arrows ignition hook — +damage modifier on is_fire_arrows attacks is shipped (mc-combat/src/keywords.rs). Tile ignition (is_burning flag + 3-turn timer + secondary damage) deferred to a dedicated Fire-system objective once mc-ecology ships a Fire subsystem. This is the authoritative game-design decision for p2-53 scope. |