Configuration
On first start the mod creates config/brecher_trainers/ with documented
defaults: league.yaml (league, rewards, tiers and deployment mode),
shop.yaml (League Vendor presets and trade offers) and skins.yaml (trainer
skin resolution, see Trainer appearances).
Transactional reload
The installed league configuration is immutable. /league reload parses,
migrates, and validates a complete candidate before replacing it. On failure the
running snapshot remains active and operators receive file/key diagnostics; full
stack traces stay in the server log. Invalid startup configuration aborts
initialization. A missing file creates documented defaults at startup. During a
live reload, the default candidate is subject to the same deployment-role and
online-player catalog guards as a file-backed candidate.
Validation
Schema 2 validates tier counts, monotonic thresholds, matching tier array
lengths, non-negative rewards and cooldowns, deployment constraints, and proxy
catalog identity. Duplicate keys, malformed lines, unknown settings, tier keys
outside tier_count, fractional schema versions, and unknown future schemas are
refused.
Remove the retired settle_sessions_on_logout key; logout settlement is
unconditional.