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