League Rules
Purpose
This page defines system-enforced league governance rules that are currently codified in the application.
Policy
- Account player-slot limit is one player per user by default (
CONFIG_USER["MAX_PLAYERS"] = 1). - Team-management actions require a valid single-team manager context; requests from users without a valid managed team are rejected.
- Standard contract offers are restricted to the
FREE_AGENCYphase. - Contract extensions are treated separately from standard free-agent offers and can follow extension-specific flow controls.
- Team and rookie option decisions are restricted to
MORATORIUMorFREE_AGENCY. - Player option decisions are owner-scoped and only shown for pending options during
MORATORIUM. - Declining a final pending player option during
MORATORIUMcan move the player to free agency and setextension_rights_team. - Staff-gated operations require explicit permissions, including:
pay_playersmark_upgradesmanage_fa_offersmanage_game_entrieslog_streams
Operational Notes
- Phase enforcement for offers/options is implemented in view-level guards and decorators.
- Staff authorization is implemented through model/admin permissions and protected views.
Known Gaps (TBD)
- Onboarding, verification, and alt-account policy.
- Sportsmanship and conduct standards.
- Collusion, tanking, and loophole abuse definitions.
- Inactivity thresholds and enforcement ladder.
- Appeal process and commissioner override policy text.
Change Log
- 2026-03-15: Initial scaffold created.
- 2026-03-18: Replaced scaffold with repository-backed governance policy baseline.