- A player's deck for a night is edited in a single form and written to
their match rows and their standings row, so the two can't disagree.
Matches, standings and hand imports all fill blank decks from the decks
already entered, whatever order the files are imported in. The imported
standings table shows decks read-only.
- Admins can rename a league.
- test/e2e.sh runs end-to-end checks against the local podman stack
(fixtures by default, or real exports: test/e2e.sh sampledata).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After total of all sessions, ties fall to OMW%, GW% and OGW% over all the
league's matches (bye = 2-0 win, not an opponent; opponents floored at 1/3),
then name. Verified identical to Melee's order and percentages on a real
night. The leaderboard shows the three percentages.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The session import takes many files (every round's matches export plus
the standings export) in one transaction; a bad file, a round repeated
across files, or two standings exports rejects the whole batch.
- Delete league (with its sessions and results; players are kept).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>