Build the combat-tracker row context-menu entries for the combatant's
available actions. Each entry is keyed by a non-HIDDEN combatant intrinsic
action; its visibility and dispatch route through the row's combatant
sohl.document.combatant.foundry.SohlCombatant.getContextOptions entry of the same id — so the action
system (and the action's own visible predicate, e.g. GM-only Move to Group)
drives behavior. Entries are gated on combatant.isOwner because the
combatant is not part of the action visible predicate's scope.
Exported (and parameterized on resolveCombatant) so the mapping is unit
testable without a live combat tracker.
Build the combat-tracker row context-menu entries for the combatant's available actions. Each entry is keyed by a non-HIDDEN combatant intrinsic action; its visibility and dispatch route through the row's combatant sohl.document.combatant.foundry.SohlCombatant.getContextOptions entry of the same id — so the action system (and the action's own
visiblepredicate, e.g. GM-only Move to Group) drives behavior. Entries are gated oncombatant.isOwnerbecause the combatant is not part of the actionvisiblepredicate's scope.Exported (and parameterized on
resolveCombatant) so the mapping is unit testable without a live combat tracker.