BattleSessionEvent.kt

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

/**
 * BattleSession 结构化事件。
 *
 * @property turn 事件发生时的回合数。
 * @property payload 当前事件的强类型 payload。
 */
data class BattleSessionEvent(
    val turn: Int,
    val payload: BattleSessionEventPayload,
) {
    /**
     * 当前事件对应的结构化事件类型。
     */
    val type: BattleSessionEventType
        get() = payload.type
}