Glossary — TTRPG Initiative Tracker
Domain terms used throughout the app, shared turn logic, tests, and docs. Keep
these definitions stable so logs, UI labels, and code agree.
Combat structure
| Term |
Meaning |
| Initiative |
The ordered sequence determining who acts next. Rolled once at the start of an encounter; re-rolled only on a new encounter or explicit DM re-roll. |
| Round |
One full pass through initiative — every active participant gets exactly one turn. N participants (PCs + NPCs + monsters + features) = N turns per round. Round counter increments when initiative wraps back to the first participant. |
| Turn |
A single participant's initiative slot within a round. One participant acts. As many turns per round as there are participants. |
| Initiative slot |
Synonym for turn's position in the ordered list. |
| Top of round |
The first turn of a round (round counter increments here). |
Example: encounter with 8 participants (3 PCs + 4 monsters + 1 NPC).
Participants
| Term |
Meaning |
| Participant |
Any combatant tracked in initiative. Has HP, initiative roll, conditions, and an isActive flag. |
| PC (Player Character) |
Controlled by a player. On death → death saves (not removed from initiative). |
| NPC (Non-Player Character) |
DM-controlled ally/neutral (e.g. merchant, quest-giver). May or may not roll initiative. |
| Monster |
Hostile DM-controlled combatant. On death → typically removed from active initiative or marked dead. |
| Feature / Lair |
Environmental or legendary effect that occupies an initiative slot (e.g. lair action at initiative 20). |
Participant state
| Term |
Meaning |
| HP (Hit Points) |
Current health. currentHp / maxHp. At 0 → dying or dead (rules differ by type). |
| Initiative mod |
Bonus added to d20 initiative roll. defaultInitMod. |
| Conditions |
Temporary status effects (stunned, prone, poisoned, etc.) applied/toggled during play. Array on participant. |
| isActive |
Whether the participant is in the active initiative rotation. Set false on death (CURRENT behavior — see M4 skip-bug fix). |
| Death save |
PC-only mechanic. Successes/failures tracked at 0 HP. 3 fails → dead; 3 successes → stable. |
Views
| Term |
Meaning |
Admin view (/) |
DM interface. Full create/edit/combat control. |
Player view (/display or ?playerView=true) |
Read-only second-screen display for players. Shows current turn, HP bars, conditions, round. No DM controls. |
| Active display |
The single activeDisplay/status doc controlling what the player view shows (which campaign/encounter, hide-player-HP flag). |
Backend / storage
| Term |
Meaning |
| Adapter |
src/storage/{firebase,ws,memory}.js. Contract boundary between App and backend. App only calls storage.*, never raw SDK/fetch. |
Path normalization (norm()) |
Strip firebase prefix (artifacts/{APP_ID}/public/data/) → bare canonical path (campaigns/X). Runs inside every adapter method. |
| Generic KV doc store |
Backend stores opaque JSON at arbitrary path strings. No shape-specific endpoints. Backend = firebase mirror, not REST API for app entities. |
| Layer 1 test |
App vs firebase mock. Proves adapter call shape. |
| Layer 2 test |
ws adapter vs live backend. Proves translation + path identity. |