Phase 7 (Core): chemistry v2, expanded card pool & search filters
CI / Build, lint & test (push) Failing after 1m46s

- Chemistry v2: FUT-style link scoring with per-player breakdown
  (club +3/link cap 6, league +1/link cap 4, nation +1/link cap 3;
   player cap 10, team cap 100); chemistry response now includes
   per-player breakdown with club/league/nation link counts and pts
- Card pool: 34 new cards across Premier League, La Liga, Bundesliga
  with overlapping clubs/nations for meaningful chemistry testing
- Card search: extended GET /cards with nation, league, club,
  min_overall, max_overall, limit query params; results sorted by
  overall descending
- Match opponent: added "ultimate" difficulty band (85+ OVR);
  random formation selection from 6 tactical formations; falls back
  to lower OVR pool when not enough cards at the requested band
- Tests: 9 new integration tests (28 total, all passing)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
funman300
2026-06-25 16:31:56 -07:00
parent 1ef2c436ab
commit 8fa125cfd6
7 changed files with 867 additions and 77 deletions
+172
View File
@@ -0,0 +1,172 @@
[
{
"id": "card_bl_001",
"name": "Klaus Berger",
"overall": 84,
"position": "ST",
"nation": "Germany",
"league": "Bundesliga",
"club": "Röder FC",
"pace": 82,
"shooting": 87,
"passing": 72,
"dribbling": 80,
"defending": 36,
"physical": 84,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_002",
"name": "Felix Hartmann",
"overall": 83,
"position": "CM",
"nation": "Germany",
"league": "Bundesliga",
"club": "Röder FC",
"pace": 74,
"shooting": 74,
"passing": 86,
"dribbling": 80,
"defending": 72,
"physical": 76,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_003",
"name": "Matteo Ricci",
"overall": 82,
"position": "CAM",
"nation": "Italy",
"league": "Bundesliga",
"club": "Röder FC",
"pace": 76,
"shooting": 80,
"passing": 85,
"dribbling": 84,
"defending": 42,
"physical": 66,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_004",
"name": "Jan Schreiber",
"overall": 81,
"position": "CB",
"nation": "Germany",
"league": "Bundesliga",
"club": "Röder FC",
"pace": 74,
"shooting": 40,
"passing": 66,
"dribbling": 56,
"defending": 85,
"physical": 87,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_005",
"name": "Lucas Fonseca",
"overall": 83,
"position": "LW",
"nation": "Brazil",
"league": "Bundesliga",
"club": "Blau Stern München",
"pace": 90,
"shooting": 78,
"passing": 77,
"dribbling": 88,
"defending": 32,
"physical": 66,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_006",
"name": "Stefan Wolf",
"overall": 82,
"position": "CDM",
"nation": "Germany",
"league": "Bundesliga",
"club": "Blau Stern München",
"pace": 72,
"shooting": 64,
"passing": 78,
"dribbling": 74,
"defending": 85,
"physical": 82,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_007",
"name": "Marco Bauer",
"overall": 80,
"position": "RB",
"nation": "Germany",
"league": "Bundesliga",
"club": "Blau Stern München",
"pace": 82,
"shooting": 54,
"passing": 74,
"dribbling": 74,
"defending": 80,
"physical": 76,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_008",
"name": "Henri Delacroix",
"overall": 84,
"position": "ST",
"nation": "France",
"league": "Bundesliga",
"club": "Rhein United",
"pace": 86,
"shooting": 87,
"passing": 73,
"dribbling": 82,
"defending": 38,
"physical": 80,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_009",
"name": "Tobias Kohl",
"overall": 80,
"position": "GK",
"nation": "Germany",
"league": "Bundesliga",
"club": "Rhein United",
"pace": 56,
"shooting": 16,
"passing": 60,
"dribbling": 30,
"defending": 82,
"physical": 82,
"rarity": "gold",
"image_path": null
},
{
"id": "card_bl_010",
"name": "Nicolas Braun",
"overall": 81,
"position": "LB",
"nation": "Germany",
"league": "Bundesliga",
"club": "Rhein United",
"pace": 78,
"shooting": 52,
"passing": 74,
"dribbling": 72,
"defending": 81,
"physical": 78,
"rarity": "gold",
"image_path": null
}
]