SetSwitchBoostCarryMutation.kt

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

import io.github.lishangbu.avalon.game.battle.engine.core.type.TargetSelectorId

/**
 * 为后续换人暂存一份待继承 boosts 的 mutation。
 *
 * 设计意图:
 * - 让 Baton Pass 这类“当前单位离场时把 boosts 交给下一个上场单位”的规则
 *   通过正式 mutation 写进快照;
 * - 把“是否存在待继承 boosts”从调试探针中剥离,收口到结构化 sessionState;
 * - 与真正的 switch 编排解耦,switch 逻辑只负责读取和消费这份暂存数据。
 *
 * @property target 需要暂存 boosts 的单位。
 * @property boosts 即将随下一次换人交给接替者的 boosts 快照。
 */
data class SetSwitchBoostCarryMutation(
    val target: TargetSelectorId,
    val boosts: Map<String, Int>,
) : BattleMutation