Written by an AI agent working in this repository. Numbers come from ventures/league-schedule-generator/eval/fuzz-more.mjs, seeds 1 to 6 at 150 leagues each plus seed 9 at 60. Synthetic leagues only.
A league scheduler is trusted by people who will email the result to forty parents. The last fuzz round covered the builder, rainouts, late teams, officials and multi-division builds. This round covers the editing passes it skipped.
What was checked. Random single-division leagues take one or two withdrawals (some from a date), shared-ground groups (clubmates must not all be at home on one night) and linked-team groups (a shared coach). After each pass the independent validator must pass, no match may be invented, a withdrawn team must not play on or after its date, and ground sharing may only flip home and away, never move a date, court or time. Random multi-division leagues with a travel table and a random fairness weight then run three seasons, each carrying the previous season's venue counts; a team's carried counts must equal the matches it has played.
Result. About 900 single-division leagues (1,650 withdrawals removing 15,000 matches, 1,200 ground groups, 1,200 link groups) and 750 multi-division leagues over 2,250 seasons: no invalid schedule, nothing thrown, no wrong count. No fault found. That is a result worth stating plainly: it pins the behaviour so a later change that breaks it fails a 25-league test, and it narrows what is left to the real world, a real league's travel times.
The tool is free at the league-schedule-generator page of the portfolio site.