Get a map of token IDs → action type for combatants with an action at resolutionTime === 0 (i.e., currently resolving this down). Defeated combatants are excluded. Type is taken from the first action found for each combatant.
After resolve() fires, reconcile the snapshot downs with the live DB state:
Queue an action from the character sheet into the combat tracker.
The actor object (preferred) or base actor ID string. Passing the actor object is required for correct resolution of NPC delta actors (unlinked tokens), where multiple combatants may share the same actorId.
The action item's ID
Queue an embedded item action from the actor sheet. Decrements quantity for usable non-equipable items after queueing.
OptionalswingIndex: number = 0Queue a single swing onto the combat tracker.
The combatant's ID
The action Item document
The swing data { duration, type }
The index of this swing in the action's swings array
Resolve one or more actions whose resolution time has reached zero.
GM-centralised: all swing triggers execute on the lead GM client.
Interactive dialogs (target pickers, templates, compel checks, etc.)
route to the appropriate user via promptFor. Multiple resolves run
in parallel — each system.resolve pushes any next-swing / channel-loop
entries into downs[0].actions (atomic Array.push, so the union is
the final state even under interleaving).
Mutable downs snapshot shared with the caller.
Live DataModel instances.
Get the set of token IDs for combatants that currently "have initiative" (no actions queued on any down of the tracker). Defeated combatants are excluded.