UnlockCondition on CombatMove, parsed from [unlock] TOML section. check_unlocks evaluates kill_count and mob_kills thresholds. Locked moves rejected with "You haven't learned that yet." in do_attack/do_defend. New unlocks announced after kills.