HookRule.kt
package io.github.lishangbu.avalon.game.battle.engine.core.dsl
/**
* 单条 Hook 规则定义。
*
* 设计意图:
* - 把一个 Hook 下的“条件 + 动作”组合表达成稳定的数据结构。
* - 让 Hook 中多条规则可以独立排序、独立标记。
*
* @property priority 规则优先级,数值越高越先结算。
* @property subOrder 同 priority 下的更细粒度排序值。
* @property condition 规则的触发条件,空值表示无条件执行。
* @property thenActions 条件满足时执行的动作列表。
* @property elseActions 条件不满足时执行的动作列表。
* @property tags 用于调试、分组或作者标记的标签集合。
*/
data class HookRule(
val priority: Int = 0,
val subOrder: Int = 0,
val condition: ConditionNode? = null,
val thenActions: List<ActionNode> = emptyList(),
val elseActions: List<ActionNode> = emptyList(),
val tags: Set<String> = emptySet(),
)