dodge-iframe ยท diff

git:20260912.056c684 to git:20260913.43ccc40

11 added, 6 removed. Audit A to A.

---
name: dodge-iframe
- description: Generic dodge and invuln frames. Windows are data. Stack under action-feel.
+ description: Use when a dodge, roll, step, dash, or similar defensive move needs explicit invulnerability timing and attack-class eligibility rules.
---
# Dodge iframe
- Ask: none | roll-iframe | step-iframe | parry-window.
- I-frames are a start/end on the dodge node. They do not cover the whole clip. Hurt boxes turn off only inside that window (`hitbox-hurtbox`).
- Direction comes from the move stick at frame 0. Mouse look does not steer a fighter-plane dodge.
- Cost lives in stamina-clock if that column is on.
+ Choose: `none` | `roll-iframe` | `step-iframe`.
- Accept: a player can draw the iframe on the clip. A late dodge still takes the hit.
+ Publish a half-open invulnerability interval on the logical dodge state, plus the attack classes it ignores (for example strike/projectile/throw). Invulnerability is an **eligibility rule** evaluated by hit resolution; do not require deleting hurtbox geometry, because hurtboxes may still be needed for debug, proximity, grabs or classes the dodge does not ignore.
+
+ Direction is sampled from the project's published input point (commonly dodge activation) and may be locked or steerable according to data. Camera/mouse look changes direction only when the selected control scheme says so. Resource cost belongs to `stamina-clock`.
+
+ Parry timing belongs to `parry-guard`, not this skill.
+
+ ## Accept
+
+ Draw the dodge interval and eligibility mask on the logical clock. Test contact immediately before, at the start, at the end and immediately after the interval for every relevant attack class. A late dodge remains hittable; changing render FPS does not move the eligibility boundaries.