# OpenFUT Core — TODO Small, independently completable tasks. ## Foundation - [ ] #1 Add `.env.example` with all supported env vars documented - [ ] #2 Add `CONTRIBUTING.md` with dev setup instructions - [ ] #3 Write modding guide (`docs/modding.md`) with full JSON schemas - [ ] #4 Add database schema diagram to `docs/` - [ ] #5 Add GitHub Actions CI workflow (fmt + clippy + test) ## Cards - [ ] #6 Add more bronze card JSON entries (target: 30+ cards) - [ ] #7 Add silver card JSON entries (target: 20+ cards) - [ ] #8 Add rare gold card JSON entries (target: 10+ cards) - [ ] #9 Add TOTW placeholder cards - [ ] #10 Add Hero placeholder cards - [ ] #11 Implement card image_path support (placeholder PNG serving) - [ ] #12 Add `GET /cards/:card_id` endpoint for single card lookup ## Packs - [ ] #13 Add TOTW pack definition - [ ] #14 Add Icon pack definition - [ ] #15 Implement `POST /packs/buy` (purchase a pack with coins) - [ ] #16 Add pack opening animation hints to the response ## Squad Builder - [ ] #17 Implement chemistry calculation (same club/league/nation bonuses) - [ ] #18 Add formation validation (11 players, 1 GK, etc.) - [ ] #19 Add `GET /formations` endpoint listing available formations - [ ] #20 Add multiple squad support (save/load named squads) ## Objectives - [ ] #21 Add weekly objective JSON data - [ ] #22 Add milestone objective JSON data - [ ] #23 Implement `POST /objectives/claim` to claim completed reward - [ ] #24 Add season-level objective tracking - [ ] #25 Reset daily objectives at midnight ## SBCs - [ ] #26 Add 5 more SBC definitions in JSON - [ ] #27 Add club requirement validation to SBC engine - [ ] #28 Add max_overall requirement validation - [ ] #29 Add chemistry requirement validation - [ ] #30 Add `GET /sbc/:id` endpoint for single SBC ## Market - [ ] #31 Schedule automatic daily NPC market refresh (via tokio background task) - [ ] #32 Add market listing expiry cleanup job - [ ] #33 Add `GET /market?min_overall=X&position=Y` filtering - [ ] #34 Add sell price floor/ceiling validation - [ ] #35 Add market transaction history endpoint ## Matches - [ ] #36 Add `GET /matches` history endpoint - [ ] #37 Implement Squad Battles opponent generator (random AI clubs) - [ ] #38 Add Draft mode: generate random squad + play matches - [ ] #39 Add seasonal rank tracking for Squad Battles - [ ] #40 Add `mode` enum: squad_battles, seasons, draft, friendly ## Statistics - [ ] #41 Add per-position goal stats - [ ] #42 Add win streak tracking - [ ] #43 Add `GET /statistics/history` (last N matches) ## Settings - [ ] #44 Add `GET /settings` and `PUT /settings` endpoints - [ ] #45 Store difficulty preference in settings - [ ] #46 Store preferred formation in settings ## Events - [ ] #47 Design JSON schema for limited-time events - [ ] #48 Implement event activation/deactivation - [ ] #49 Add TOTW event that enables special pack ## Hardening - [ ] #50 Add request body size limits - [ ] #51 Add rate limiting middleware (prevent accidental loops) - [ ] #52 Add proper logging correlation IDs - [ ] #53 Write additional integration tests for SBC engine - [ ] #54 Write integration test for full pack open flow - [ ] #55 Add SQLite WAL mode for better concurrency