Lives (floors at zero, exhaustion observable), LevelId, SkillId,
PlaythroughId (never self-generates, keeps tests deterministic),
StatName enum, LevelTime rejects NaN/infinity.
14 tests. Arithmetic/comparison members deferred to the slices whose
behaviour needs them rather than added speculatively.