Files
OpenFUT/openfut-core/TODO.md
T
funman300 6ef4c40e29 Initial commit: OpenFUT Core + Bridge scaffold
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>
2026-06-25 14:42:16 -07:00

83 lines
3.2 KiB
Markdown

# 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