• The reason a combatant may not start an automated attack because it is not its turn — null when the attacker is the active combat's current combatant (and so may open an attack). Automated combat is turn-gated: only the current combatant may initiate. Out-of-turn defenses (a counterstrike) are unaffected because they run through the defense-resume path, not this one. Pure and unit-tested; consumed by SohlCombatantLogic.startAutomatedAttack.

    Parameters

    • currentCombatantId: undefined | null | string

      Id of the active combat's current combatant, or null/undefined when no combat/turn is active.

    • attackerCombatantId: undefined | null | string

      Id of the combatant attempting to attack.

    Returns string | null

    A short reason phrase when the start is disallowed, else null.