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

3.2 KiB

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