""" Progression subsystem — schemes + rewards + unlocks. Abstracts over "level/XP" vs "mastery %" vs "CEFR tier" vs "certification status" so one runtime handles all experience modes without branching Python logic per mode. Submodules: levels.py Map (scheme, metric_value) → human-readable level + next-threshold calculation. rewards.py apply_rewards(scheme, state, action) → updated progress dict. Handles xp_award + repeat_penalty. unlocks.py is_action_unlocked(action, state) — gate check for catalog visibility and execution. """ from .levels import LevelDescription, describe_level, level_from_xp from .rewards import RewardOutcome, apply_rewards from .unlocks import is_action_unlocked __all__ = [ "LevelDescription", "describe_level", "level_from_xp", "RewardOutcome", "apply_rewards", "is_action_unlocked", ]