neon-sprawl/docs/decomposition/modules/E1_M4_AbilityInputScaffold.md

46 lines
1.5 KiB
Markdown

# E1.M4 — AbilityInputScaffold
## Summary
| Field | Value |
|--------|--------|
| **Module ID** | E1.M4 |
| **Epic** | [Epic 1 — Core Player Runtime](../epics/epic_01_core_player_runtime.md) |
| **Stage target** | Prototype |
| **Status** | Planned (see [dependency register](module_dependency_register.md)) |
## Purpose
Hotbar bindings, cooldown slot UI hooks, and the client/input path that issues `AbilityCastRequest` into [E5.M1 — CombatRulesEngine](E5_M1_CombatRulesEngine.md), using targeting from [E1.M3](E1_M3_InteractionAndTargetingLayer.md).
## Responsibilities
- Map hotbar slots to abilities and emit `AbilityCastRequest` with validation hints.
- Surface `HotbarLoadout` and `CooldownSnapshot` for UI sync.
## Key contracts
| Contract | Role |
|----------|------|
| `AbilityCastRequest` | Intent sent to combat resolution. |
| `HotbarLoadout` | Bound abilities per slot. |
| `CooldownSnapshot` | Client/server-visible cooldown state for UI. |
## Module dependencies
- **E1.M3** — InteractionAndTargetingLayer: target lock and cast validity.
- **E5.M1** — CombatRulesEngine: authoritative accept/deny of casts.
## Dependents (by design)
- Consumed by UX and telemetry; combat engine remains the authority.
## Related implementation slices
Epic 1 **Slice 3**`ability_cast_requested`, `ability_cast_denied` with reason codes.
## Source anchors
- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 1.
- [Module dependency register](module_dependency_register.md)