Phase 7 (Core): chemistry v2, expanded card pool & search filters
CI / Build, lint & test (push) Failing after 1m46s
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:
@@ -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
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,206 @@
|
||||
[
|
||||
{
|
||||
"id": "card_ll_001",
|
||||
"name": "Carlos Mendez",
|
||||
"overall": 85,
|
||||
"position": "ST",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Atletico Fuego",
|
||||
"pace": 86,
|
||||
"shooting": 89,
|
||||
"passing": 72,
|
||||
"dribbling": 84,
|
||||
"defending": 36,
|
||||
"physical": 82,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_002",
|
||||
"name": "Pablo Serrano",
|
||||
"overall": 83,
|
||||
"position": "CAM",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Atletico Fuego",
|
||||
"pace": 78,
|
||||
"shooting": 80,
|
||||
"passing": 86,
|
||||
"dribbling": 86,
|
||||
"defending": 46,
|
||||
"physical": 70,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_003",
|
||||
"name": "Rodrigo Vidal",
|
||||
"overall": 82,
|
||||
"position": "CM",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Atletico Fuego",
|
||||
"pace": 74,
|
||||
"shooting": 70,
|
||||
"passing": 84,
|
||||
"dribbling": 80,
|
||||
"defending": 72,
|
||||
"physical": 74,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_004",
|
||||
"name": "Andrés Torres",
|
||||
"overall": 81,
|
||||
"position": "CB",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Atletico Fuego",
|
||||
"pace": 73,
|
||||
"shooting": 38,
|
||||
"passing": 68,
|
||||
"dribbling": 58,
|
||||
"defending": 84,
|
||||
"physical": 86,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_005",
|
||||
"name": "Gabriel Costa",
|
||||
"overall": 84,
|
||||
"position": "LW",
|
||||
"nation": "Brazil",
|
||||
"league": "La Liga",
|
||||
"club": "Real Viento",
|
||||
"pace": 92,
|
||||
"shooting": 80,
|
||||
"passing": 78,
|
||||
"dribbling": 90,
|
||||
"defending": 32,
|
||||
"physical": 64,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_006",
|
||||
"name": "Javier Ruiz",
|
||||
"overall": 83,
|
||||
"position": "CDM",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Real Viento",
|
||||
"pace": 72,
|
||||
"shooting": 62,
|
||||
"passing": 80,
|
||||
"dribbling": 76,
|
||||
"defending": 86,
|
||||
"physical": 82,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_007",
|
||||
"name": "Miguel Ángel Prieto",
|
||||
"overall": 80,
|
||||
"position": "RB",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Real Viento",
|
||||
"pace": 80,
|
||||
"shooting": 52,
|
||||
"passing": 76,
|
||||
"dribbling": 74,
|
||||
"defending": 80,
|
||||
"physical": 74,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_008",
|
||||
"name": "Diego Reyes",
|
||||
"overall": 82,
|
||||
"position": "ST",
|
||||
"nation": "Argentina",
|
||||
"league": "La Liga",
|
||||
"club": "Valencia Azul",
|
||||
"pace": 85,
|
||||
"shooting": 84,
|
||||
"passing": 70,
|
||||
"dribbling": 82,
|
||||
"defending": 36,
|
||||
"physical": 78,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_009",
|
||||
"name": "Marc Gutiérrez",
|
||||
"overall": 80,
|
||||
"position": "GK",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Valencia Azul",
|
||||
"pace": 54,
|
||||
"shooting": 14,
|
||||
"passing": 62,
|
||||
"dribbling": 28,
|
||||
"defending": 81,
|
||||
"physical": 80,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_010",
|
||||
"name": "Emilio Navarro",
|
||||
"overall": 81,
|
||||
"position": "LB",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Valencia Azul",
|
||||
"pace": 79,
|
||||
"shooting": 52,
|
||||
"passing": 74,
|
||||
"dribbling": 72,
|
||||
"defending": 82,
|
||||
"physical": 76,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_011",
|
||||
"name": "Thiago Drummond",
|
||||
"overall": 83,
|
||||
"position": "CB",
|
||||
"nation": "Brazil",
|
||||
"league": "La Liga",
|
||||
"club": "Atletico Fuego",
|
||||
"pace": 76,
|
||||
"shooting": 38,
|
||||
"passing": 68,
|
||||
"dribbling": 62,
|
||||
"defending": 86,
|
||||
"physical": 88,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_ll_012",
|
||||
"name": "Fran Molina",
|
||||
"overall": 82,
|
||||
"position": "RW",
|
||||
"nation": "Spain",
|
||||
"league": "La Liga",
|
||||
"club": "Real Viento",
|
||||
"pace": 87,
|
||||
"shooting": 76,
|
||||
"passing": 76,
|
||||
"dribbling": 85,
|
||||
"defending": 34,
|
||||
"physical": 66,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,206 @@
|
||||
[
|
||||
{
|
||||
"id": "card_pl_001",
|
||||
"name": "James Caldwell",
|
||||
"overall": 84,
|
||||
"position": "ST",
|
||||
"nation": "England",
|
||||
"league": "Premier League",
|
||||
"club": "Northgate United",
|
||||
"pace": 84,
|
||||
"shooting": 87,
|
||||
"passing": 70,
|
||||
"dribbling": 80,
|
||||
"defending": 36,
|
||||
"physical": 82,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_002",
|
||||
"name": "Danny Walsh",
|
||||
"overall": 82,
|
||||
"position": "CM",
|
||||
"nation": "England",
|
||||
"league": "Premier League",
|
||||
"club": "Northgate United",
|
||||
"pace": 74,
|
||||
"shooting": 72,
|
||||
"passing": 84,
|
||||
"dribbling": 79,
|
||||
"defending": 70,
|
||||
"physical": 74,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_003",
|
||||
"name": "Reece Okafor",
|
||||
"overall": 83,
|
||||
"position": "LW",
|
||||
"nation": "England",
|
||||
"league": "Premier League",
|
||||
"club": "Northgate United",
|
||||
"pace": 91,
|
||||
"shooting": 78,
|
||||
"passing": 75,
|
||||
"dribbling": 88,
|
||||
"defending": 34,
|
||||
"physical": 68,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_004",
|
||||
"name": "Tom Briggs",
|
||||
"overall": 80,
|
||||
"position": "CB",
|
||||
"nation": "England",
|
||||
"league": "Premier League",
|
||||
"club": "Northgate United",
|
||||
"pace": 72,
|
||||
"shooting": 36,
|
||||
"passing": 62,
|
||||
"dribbling": 52,
|
||||
"defending": 83,
|
||||
"physical": 86,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_005",
|
||||
"name": "Pierre-Marc Dubois",
|
||||
"overall": 84,
|
||||
"position": "CAM",
|
||||
"nation": "France",
|
||||
"league": "Premier League",
|
||||
"club": "Southfield City",
|
||||
"pace": 79,
|
||||
"shooting": 80,
|
||||
"passing": 87,
|
||||
"dribbling": 85,
|
||||
"defending": 44,
|
||||
"physical": 70,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_006",
|
||||
"name": "Kwame Asante",
|
||||
"overall": 85,
|
||||
"position": "ST",
|
||||
"nation": "Ghana",
|
||||
"league": "Premier League",
|
||||
"club": "Southfield City",
|
||||
"pace": 88,
|
||||
"shooting": 88,
|
||||
"passing": 70,
|
||||
"dribbling": 84,
|
||||
"defending": 38,
|
||||
"physical": 86,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_007",
|
||||
"name": "Liam Foster",
|
||||
"overall": 81,
|
||||
"position": "CDM",
|
||||
"nation": "England",
|
||||
"league": "Premier League",
|
||||
"club": "Southfield City",
|
||||
"pace": 74,
|
||||
"shooting": 62,
|
||||
"passing": 78,
|
||||
"dribbling": 74,
|
||||
"defending": 84,
|
||||
"physical": 80,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_008",
|
||||
"name": "Sergio Rojas",
|
||||
"overall": 83,
|
||||
"position": "RW",
|
||||
"nation": "Argentina",
|
||||
"league": "Premier League",
|
||||
"club": "Westbrook FC",
|
||||
"pace": 89,
|
||||
"shooting": 80,
|
||||
"passing": 78,
|
||||
"dribbling": 90,
|
||||
"defending": 30,
|
||||
"physical": 62,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_009",
|
||||
"name": "Ben Archer",
|
||||
"overall": 79,
|
||||
"position": "GK",
|
||||
"nation": "England",
|
||||
"league": "Premier League",
|
||||
"club": "Westbrook FC",
|
||||
"pace": 52,
|
||||
"shooting": 14,
|
||||
"passing": 62,
|
||||
"dribbling": 28,
|
||||
"defending": 80,
|
||||
"physical": 80,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_010",
|
||||
"name": "Nathan Cross",
|
||||
"overall": 80,
|
||||
"position": "RB",
|
||||
"nation": "England",
|
||||
"league": "Premier League",
|
||||
"club": "Westbrook FC",
|
||||
"pace": 81,
|
||||
"shooting": 50,
|
||||
"passing": 74,
|
||||
"dribbling": 72,
|
||||
"defending": 80,
|
||||
"physical": 76,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_011",
|
||||
"name": "Marco Silva Jr.",
|
||||
"overall": 83,
|
||||
"position": "CB",
|
||||
"nation": "Brazil",
|
||||
"league": "Premier League",
|
||||
"club": "Westbrook FC",
|
||||
"pace": 77,
|
||||
"shooting": 40,
|
||||
"passing": 66,
|
||||
"dribbling": 60,
|
||||
"defending": 86,
|
||||
"physical": 88,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
},
|
||||
{
|
||||
"id": "card_pl_012",
|
||||
"name": "Erik Strand",
|
||||
"overall": 82,
|
||||
"position": "LB",
|
||||
"nation": "Norway",
|
||||
"league": "Premier League",
|
||||
"club": "Northgate United",
|
||||
"pace": 80,
|
||||
"shooting": 54,
|
||||
"passing": 76,
|
||||
"dribbling": 74,
|
||||
"defending": 82,
|
||||
"physical": 78,
|
||||
"rarity": "gold",
|
||||
"image_path": null
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user