Deployment modes
Set deployment_mode in config/brecher_trainers/league.yaml:
STANDALONEis the default for one server.PROXY_AUTHORITYis the only backend allowed to own and mutate gyms on a proxy network.PROXY_SATELLITEstores transferred player progression and serves player-facing status/shop behavior, but refuses world-gym operations.
A proxy network must designate exactly one PROXY_AUTHORITY; all other backends
use PROXY_SATELLITE. Deployment mode cannot be changed by a live reload.
Use the same schema_version, catalog_identity, tier count, names, and
threshold arrays on every proxy backend. /league info prints the installed
schema, role, identity, current 64-character SHA-256 catalog hash, temporarily
accepted previous hash, and whether the local backend owns world state. A
mismatch disconnect protects transferred progress from being interpreted against
a different tier catalog.
On PROXY_SATELLITE, player progression and shop operations remain local, but
world-gym commands and trainer-template spawning fail through the shared
authority policy.
Changing the tier catalog on a proxy network
For an intentional proxy catalog change:
- Record the old
/league infohash. - With all players disconnected, deploy the new catalog and set
accepted_previous_catalog_hashto that old hash on every backend. - Run
/league reload, and confirm the new current hash matches everywhere before admitting players.
A player stamped with exactly that previous schema/hash is restamped to the current hash on login; every other mismatch remains rejected. Remove the temporary accepted hash after all player data has migrated. Reloading an authority does not distribute its file to satellites. During the transition from CRC32 catalog identities, the accepted previous value may be the legacy 8-character hash; current identities are 64-character SHA-256 hashes.