6ef4c40e29
Two-repo monorepo for an offline FUT backend inspired by SPT. openfut-core: game-independent REST API backend (Axum, SQLite, SQLx) - 19 API endpoints: auth, profiles, clubs, cards, packs, squads, objectives, SBCs, match rewards, NPC market, statistics - JSON-driven card/pack/objective/SBC data (fully moddable) - SQLx migrations, weighted pack generator, SBC validation engine - 5 integration tests passing openfut-bridge: FIFA 23 traffic proxy + reverse-engineering scaffold - Catch-all HTTP proxy with request capture to captures/ - Known-route mapper (FUT paths → Core API calls) - Placeholder responses for unknown endpoints - Admin endpoints: captures, unknown endpoint list - 4 unit tests passing cargo fmt ✓ cargo clippy -D warnings ✓ cargo test ✓ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.2 KiB
3.2 KiB
OpenFUT Core — TODO
Small, independently completable tasks.
Foundation
- #1 Add
.env.examplewith all supported env vars documented - #2 Add
CONTRIBUTING.mdwith 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_idendpoint 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 /formationsendpoint 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/claimto 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/:idendpoint 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=Yfiltering - #34 Add sell price floor/ceiling validation
- #35 Add market transaction history endpoint
Matches
- #36 Add
GET /matcheshistory 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
modeenum: 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 /settingsandPUT /settingsendpoints - #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