Round 2: bidirectional team lookup + calendar-year shadow files
Second pass on signal coverage after the first unblock commit: 1. findTeamInMap now tries canonical→full (miToCanonicalName) too.
Second pass on signal coverage after the first unblock commit:
- findTeamInMap now tries canonical→full (miToCanonicalName) too.
ShotXG missed 8 of 42 Championship bets because ledger used MI short names ("Leicester", "Preston", "Stoke") but fotmob-shots uses FotMob canonical ("Leicester City", "Preston North End", "Stoke City"). The old helper only went long→short via canonicalToMI. Added the reverse direction and a comment explaining the 3-convention cross-product.
- match-xg-v2-shadow + match-xg-aggregate-shadow: the previous commit's
gitignore allow-rule was !*2025-26.json, which silently dropped the four calendar-year leagues (arg-primera, brazil-a, j-league, mls) whose files use *-2025.json. Added a second allow-rule for *2025.json and force-added 8 files (arg-primera + brazil-a + j-league + mls × 2 dirs). AggV2 should gain +10 bets on those leagues.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>