What problem does it solve? A real-time battle engine has no turns, yet mainline Pokémon mechanics are all specified in turns. This Skill enforces a single conversion rule — one turn equals 2000 ms via the turns() helper in src/battle/turn.ts — so durations stay consistent, testable, and traceable to their mainline source instead of scattered as bare millisecond literals. ## Core Features & Use Cases - Canonical conversion: Import turns from src/battle/turn.ts and write turns(4) for a four-turn status rather than a bare 8000. - Residual ticking: Per-turn chip damage and healing tick on RESIDUAL_TICK, which is exactly one turn; no second interval is invented for new effects. - Faithful mechanics: Turn counts are looked up in the modern games (as with PokeAPI move data), expectation-based conversions (e.g. freeze thawing at a 20% roll per turn becomes five turns) are documented in comments, and item multipliers like Light Clay (×1.6) and Grip Claw (×1.75) stay as multipliers on the converted base. - Use Case: When implementing a screen that holds for five turns in the main games, write turns(5) so a later change to the exchange rate updates every duration and every test assertion at once. ## Quick Start When adding a duration taken from the main games, import turns from src/battle/turn.ts and write it as turns(n) with the mainline turn count instead of a millisecond literal.