UnitMetadataState.kt
package io.github.lishangbu.avalon.game.battle.engine.core.model
/**
* 战斗单位的结构化元数据。
*
* 设计意图:
* - 承载“会被规则计算直接读取”的单位元数据,避免继续把这些值塞进调试探针状态;
* - 保持这些元数据跟随 battle runtime snapshot 一起导出/恢复;
* - 为后续继续从调试状态中剥离更多半结构化字段提供稳定容器。
*
* 当前只收口已经在 battle / capture 公式中被直接读取的字段。
*/
data class UnitMetadataState(
val creatureId: Long? = null,
val creatureSpeciesId: Long? = null,
val creatureInternalName: String? = null,
val creatureName: String? = null,
val level: Int? = null,
val requiredExperience: Int? = null,
val natureId: Long? = null,
val captureRate: Int? = null,
val weight: Int? = null,
val captureContext: UnitCaptureContextState = UnitCaptureContextState(),
val ivs: Map<String, Int> = emptyMap(),
val evs: Map<String, Int> = emptyMap(),
)