BattleMutationInterceptionContext.kt
package io.github.lishangbu.avalon.game.battle.engine.core.runtime.flow
import io.github.lishangbu.avalon.game.battle.engine.core.mutation.BattleMutation
/**
* 单个 mutation 在拦截链中的共享上下文。
*
* @property snapshot 当前拦截阶段持有的 battle 快照。
* @property selfId 当前 hook 的 self 单位标识。
* @property targetId 当前 hook 的目标单位标识。
* @property sourceId 当前 hook 的来源单位标识。
* @property mutation 当前正在判断的 mutation。
*/
data class BattleMutationInterceptionContext(
val snapshot: BattleRuntimeSnapshot,
val selfId: String?,
val targetId: String?,
val sourceId: String?,
val mutation: BattleMutation,
)