Serialized action definitions used to build the logic's actions map.
The logic of the owning actor — this actor's own logic when the data is
an actor's, the owning actor's logic when it is an item's, or null.
Whether this combatant has acted this turn.
Which movement medium's computed move the tracker displays.
This combatant's CombatantGroup id, or null when ungrouped.
The owning document's id.
Whether this combatant is defeated (Foundry DEFEATED special status).
Whether this combatant's token is hidden from players.
Whether the current user owns the document (edit permission).
The document kind (its actor or item type id).
OptionallastStrike mode last used to attack ({ itemId, smId }), or null.
OptionallastStrike mode last used to block ({ itemId, smId }), or null.
OptionallastGeneric run record (issue #579) — a map of actionName → the world
time (seconds) that action last performed on this document, stamped at the
action chokepoint for actions flagged recordsLastRun. The past-tense
mirror of scheduledActions: "when did X last happen here?" for any
action, without a bespoke field, and it survives after a schedule ends. For
an event-driven trigger (no computable next fire) it is the only meaningful
temporal fact.
The logic instance built from this data.
GM situational multiplier on computed move (run, terrain, …).
The owning document's name.
The Foundry document (actor or item) this data belongs to, or null.
OptionalscheduledPersisted recurring/deferred schedules for this document (issue #588) —
each entry defers actionName to anchor + interval. The generic store
that replaces the retired bespoke last*Date anchors; a recurring effect's
finalize() re-arms these into the event queue on every preparation. Only
documents whose data model extends the base SohlDataModel (actors, items,
combatants) carry it — hence optional here. See
https://kb.heroiclands.org/dev/reference/event-queue/.
Short identity code for this document.
Turn-start location used to measure spaces moved this turn. Captured at the start of each round and compared to the current token position to compute SohlCombatantLogic.spacesMovedThisTurn.
The active status-effect ids on this combatant's actor.
The owning document's type (its actor or item kind).
The owning document's globally-unique id, treated as an opaque
identity token: pass it through (e.g. into chat-card data) and resolve it
back to logic via fvttLogicFromUuid / fvttLogicFromUuidSync — never fromUuid
it to a Foundry document inside the logic layer.
The Foundry-free data contract for a SoHL combatant — the sohl.core.logic.SohlLogicData port specialized for sohl.document.combatant.foundry.SohlCombatant, plus the combatant's persisted combat-scoped state. Implemented by
SohlCombatantDataModel.