ApplyFieldConditionMutation.kt
package io.github.lishangbu.avalon.game.battle.engine.core.mutation
/**
* field condition 挂载变更。
*
* 设计意图:
* - 承载 `apply_condition target=field` 的正式结构化写回语义;
* - 让 Trick Room / Gravity / Magic Room / Wonder Room 这类场地公共规则不再挤进 side condition。
*
* @property conditionEffectId 需要挂载到 field 的 effect 标识。
* @property duration 可选的剩余持续回合数。
* @property sourceId 可选的来源单位标识。
*/
data class ApplyFieldConditionMutation(
val conditionEffectId: String,
val duration: Int? = null,
val sourceId: String? = null,
) : BattleMutation