BattleSessionSkippedActionEventPayload.kt

package io.github.lishangbu.avalon.game.battle.engine.core.session

/**
 * action 被跳过时的结构化事件 payload。
 *
 * @property actionType 被跳过的动作种类。
 * @property submittingUnitId 提交动作的单位;没有明确单位时为空。
 * @property sideId 动作所属 side;没有明确 side 时为空。
 * @property reason 本次被跳过的原因。
 */
data class BattleSessionActionSkippedPayload(
    val actionType: BattleSessionActionEventKind,
    val submittingUnitId: String? = null,
    val sideId: String? = null,
    val reason: String,
) : BattleSessionEventPayload {
    /**
     * 当前 payload 对应的事件类型。
     */
    override val type: BattleSessionEventType = BattleSessionEventType.ACTION_SKIPPED
}