cover-space ยท diff

git:20260912.0fea221 to git:20260913.0c15872

29 added, 6 removed. Audit A to A.

---
name: cover-space
- description: Generic cover. Geometry is the cover. Stick-to-wall is optional.
+ description: Use when level geometry needs explicit cover affordances, stable anchors, stance/peek capabilities, occupancy and clearance evidence. It owns cover-space data, not input bindings, shooting, or the actor's cover state machine.
---
# Cover space
- Ask: geometry-only | stick-cover | none.
- High / low / blind-fire are authored heights, not a second health bar.
- Leaving cover is a published window. Do not auto-stick during a roll.
- kb-mouse-map: tps-orbit or fps-look. Peek is RMB or a face button, not both.
+ Ask: `geometry-only | stick-cover | none`.
- Accept: a player can name why they died (peeked long, left early, no cover).
+ ## Ownership
+
+ `cover-space` owns authored/queryable cover affordances. `cover-shooter` consumes them for actor state transitions; `projectile-hitscan` owns shot resolution; `input-design` / `kb-mouse-map` own actions and bindings.
+
+ ## Contract
+
+ Each cover affordance publishes:
+ - stable `cover_anchor_id`
+ - source geometry/collision revision
+ - supported stance/peek/fire-side capabilities
+ - usable approach/exit regions
+ - clearance and occupancy policy
+ - optional neighbor/link IDs
+
+ High/low, blind-fire, lean, vault or other capabilities are project data. Do not infer them only from rendered mesh height.
+
+ ## Runtime rules
+
+ 1. A cover query returns anchor ID + revision + capabilities.
+ 2. Streaming/destruction/geometry changes invalidate or revise affected anchors.
+ 3. Occupancy is explicit where required; two actors cannot silently claim an exclusive slot.
+ 4. Input keys and mouse buttons never live in this skill.
+ 5. Cover affordance does not grant invulnerability, alter health, or resolve shots.
+
+ ## Acceptance
+
+ For one geometry revision and actor capability profile, the same query resolves the same valid cover anchors. A stale or blocked anchor is rejected before attachment, and cover presentation cannot make non-cover geometry authoritative.