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>
This commit is contained in:
funman300
2026-06-25 14:42:16 -07:00
commit 6ef4c40e29
79 changed files with 9158 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
[
{
"id": "sbc_bronze_upgrade",
"name": "Bronze Upgrade",
"description": "Submit 11 bronze players for a silver pack.",
"requirements": {
"squad_size": 11,
"min_overall": null,
"max_overall": 64,
"min_chemistry": null,
"required_leagues": [],
"required_nations": [],
"required_clubs": [],
"min_players_from_same_league": null,
"min_players_from_same_nation": null,
"min_players_from_same_club": null
},
"reward": {
"coins": 0,
"xp": 200,
"pack_id": "silver_pack"
},
"expires_at": null,
"repeatable": true
},
{
"id": "sbc_hybrid_nations",
"name": "Hybrid Nations",
"description": "Build a squad of 11 players with at least one Brazilian and one Argentinian.",
"requirements": {
"squad_size": 11,
"min_overall": 70,
"max_overall": null,
"min_chemistry": null,
"required_leagues": [],
"required_nations": ["Brazil", "Argentina"],
"required_clubs": [],
"min_players_from_same_league": null,
"min_players_from_same_nation": null,
"min_players_from_same_club": null
},
"reward": {
"coins": 2000,
"xp": 400,
"pack_id": "gold_pack"
},
"expires_at": null,
"repeatable": false
}
]