class_name Attributes extends RefCounted ## The five attribute rows and the one modifier formula. LCK is deliberately NOT ## here — it is never an attribute row, never a save, never a skill (§7). It lives ## in GameState.luck. const IDS := ["str", "dex", "con", "fth", "mag"] static func exists(id: String) -> bool: return id in IDS static func modifier(score: int) -> int: return floori((score - 10) / 2.0)