from __future__ import annotations from dataclasses import dataclass from typing import Dict @dataclass(frozen=True) class Ability: id: str name: str class_name: str path: str tier: int # 1..level; use this as your learn/unlock gate element: str cost_mp: int damage_power: float # abstract power; plug into your combat math scaling_stat: str # e.g., "CHA" scaling_coeff: float# e.g., 1.22 means +122% of stat modifier rules_text: str # readable summary (optional)