package io.github.lishangbu.avalon.game.battle.engine.core.mutation import io.github.lishangbu.avalon.game.battle.engine.core.type.TargetSelectorId /** * 强制替换变更。 * * @property target 目标选择器。 * * 说明: * - 该 mutation 不直接执行换人,而是先把目标单位标记为 `forceSwitchRequested=true`; * - 后续由 `BattleSessionReplacementResolver` 在统一替补阶段消费这个标记, * 决定是自动替补还是生成 replacement request。 */ data class ForceSwitchMutation( val target: TargetSelectorId, ) : BattleMutation