{
  "match_info": {
    "home_team": "Qatar",
    "away_team": "Switzerland",
    "tournament": "FIFA World Cup",
    "date": "20260613",
    "timezone": "America/New_York",
    "home_formation": "4-3-3",
    "away_formation": "4-2-3-1"
  },
  "prediction": {
    "most_likely_score": "1-1",
    "home_goals": 1,
    "away_goals": 1,
    "most_likely_score_probability": 0.1201,
    "top_5_scorelines": [
      {
        "score": "1-1",
        "probability": 0.1201
      },
      {
        "score": "0-1",
        "probability": 0.1126
      },
      {
        "score": "1-2",
        "probability": 0.0947
      },
      {
        "score": "0-2",
        "probability": 0.0902
      },
      {
        "score": "1-0",
        "probability": 0.0741
      }
    ],
    "scoreline_probabilities": {
      "0-0": 0.0724,
      "0-1": 0.1126,
      "0-2": 0.0902,
      "0-3": 0.0478,
      "0-4": 0.019,
      "0-5": 0.006,
      "0-6": 0.0016,
      "1-0": 0.0741,
      "1-1": 0.1201,
      "1-2": 0.0947,
      "1-3": 0.0502,
      "1-4": 0.0199,
      "1-5": 0.0063,
      "1-6": 0.0017,
      "2-0": 0.0394,
      "2-1": 0.0626,
      "2-2": 0.0497,
      "2-3": 0.0263,
      "2-4": 0.0105,
      "2-5": 0.0033,
      "2-6": 0.0009,
      "3-0": 0.0138,
      "3-1": 0.0219,
      "3-2": 0.0174,
      "3-3": 0.0092,
      "3-4": 0.0037,
      "3-5": 0.0012,
      "4-0": 0.0036,
      "4-1": 0.0057,
      "4-2": 0.0046,
      "4-3": 0.0024,
      "4-4": 0.001,
      "5-0": 0.0008,
      "5-1": 0.0012,
      "5-2": 0.001,
      "5-3": 0.0005
    },
    "outcome": {
      "home_win": 0.2498,
      "draw": 0.2525,
      "away_win": 0.4977
    },
    "markets": {
      "over_2_5_goals": 0.4913,
      "under_2_5_goals": 0.5087,
      "btts_yes": 0.5183,
      "btts_no": 0.4817,
      "home_clean_sheet": 0.2041,
      "away_clean_sheet": 0.3499
    },
    "home_ratings": {
      "DR": 86.1,
      "MCR": 88.5,
      "ATR": 6.5,
      "GK": 87.02
    },
    "away_ratings": {
      "DR": 84.45,
      "MCR": 83.46,
      "ATR": 83.73,
      "GK": 93.65
    },
    "insights": {
      "summary": "Antagonist matchup analysis for Qatar vs Switzerland. Most likely scoreline: 1-1. Lambdas derived from 2 home and 5 away individual player duels.",
      "key_player": "Projected scorer(s): Akram Afif, Johan Manzambi",
      "tactical_analysis": "Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Away midfield dictates play with ~53% possession expected (Akram Afif vs Johan Manzambi). Total antagonist xG — Home: 0.15, Away: 0.89. Home danger zone: Central Mid vs Defensive Mid — Pressing/Creation Duel. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel."
    },
    "confidence": 0.75,
    "home_lambda": 1.05,
    "away_lambda": 1.589
  },
  "teams": {
    "Qatar": {
      "formation": "4-3-3",
      "players": {
        "Akram Afif": {
          "player_id": 794541,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 11,
          "height": 177,
          "market_value": 7500000,
          "stats": {
            "key_pass": 5,
            "expected_assists": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 92.1836,
            "minutes": 87,
            "total_pass": 39,
            "accurate_pass": 30,
            "ball_recovery": 3,
            "duels_won": 3,
            "total_shots": 3,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 33,
            "accurate_opp_half_passes": 24,
            "crosses_total": 8,
            "crosses_accurate": 3,
            "touches": 61,
            "possession_lost": 21.1534,
            "dispossessed": 0.9978,
            "duels_lost": 4,
            "aerial_won": 2,
            "aerial_lost": 1,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 2,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 2,
            "goal_rate": 1.3271,
            "goals": 1,
            "shots_on_target": 2,
            "shots_off_target": 2,
            "blocks": 0,
            "big_chances_created": 2,
            "big_chances_missed": 1,
            "xgot": 0.0,
            "ball_carries": 37,
            "total_progression": 187,
            "progressive_carries": 9,
            "opponent_faced": "Silvan Widmer",
            "matchup_zone": "Midfield lane",
            "antagonist_source": "midfield_pairing",
            "fifa_overall": 85.0,
            "projected_goals": 1,
            "goal_probability": 0.4437
          },
          "latest_10_games": [
            {
              "match_id": 15603927,
              "match_date": "2026-04-27",
              "home_team": "Al-Sadd",
              "away_team": "Al Shamal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al Shamal SC",
              "stats": {
                "minutes": 89,
                "rating": 8.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 42,
                "accurate_pass": 33,
                "key_pass": 4,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603918,
              "match_date": "2026-04-08",
              "home_team": "Al-Sailiya",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 90,
                "rating": 8.7,
                "goal_rate": 2.0,
                "goals": 2,
                "assists": 0,
                "total_shots": 5,
                "shots_on_target": 3,
                "shots_off_target": 2,
                "total_pass": 62,
                "accurate_pass": 48,
                "key_pass": 7,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 75,
                "rating": 7.2,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 38,
                "accurate_pass": 32,
                "key_pass": 6,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603899,
              "match_date": "2026-03-17",
              "home_team": "Al-Arabi SC",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Arabi SC",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 1,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 21,
                "accurate_pass": 10,
                "key_pass": 4,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15690007,
              "match_date": "2026-03-13",
              "home_team": "Al-Sadd",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 6,
                "shots_on_target": 2,
                "shots_off_target": 3,
                "total_pass": 33,
                "accurate_pass": 25,
                "key_pass": 4,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 381,
            "combined_rank_score": 163.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 129.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "projected_match_rating": 7.1836,
            "source_file": "data/player_rankings.csv",
            "player_name": "Akram Afif",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Do-yeon Kim",
                  "ranking": 376
                },
                {
                  "player_name": "Ognjen Ugrešić",
                  "ranking": 377
                },
                {
                  "player_name": "Ricardo Mathias",
                  "ranking": 378
                },
                {
                  "player_name": "Gui Negão",
                  "ranking": 379
                },
                {
                  "player_name": "Péter Gulácsi",
                  "ranking": 380
                }
              ],
              "lower": [
                {
                  "player_name": "Mujaid Sadick",
                  "ranking": 382
                },
                {
                  "player_name": "Jonas Adjei Adjetey",
                  "ranking": 383
                },
                {
                  "player_name": "Bojan Ciger",
                  "ranking": 384
                },
                {
                  "player_name": "Sebastián Guzmán",
                  "ranking": 385
                },
                {
                  "player_name": "Sandzhar Kuvvatov",
                  "ranking": 386
                }
              ]
            }
          }
        },
        "Almoez Ali": {
          "player_id": 796501,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 19,
          "height": 180,
          "market_value": 2400000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0981,
            "assists": 0,
            "expected_goals": 0.0491,
            "rating": 88.6724,
            "minutes": 90,
            "total_pass": 45,
            "accurate_pass": 36,
            "ball_recovery": 3,
            "duels_won": 4,
            "total_shots": 1,
            "opponent_faced": "Michel Aebischer",
            "matchup_zone": "Midfield lane",
            "antagonist_source": "midfield_pairing",
            "fifa_overall": 82.0,
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0372
          },
          "latest_10_games": [
            {
              "match_id": 15603929,
              "match_date": "2026-04-27",
              "home_team": "Qatar SC",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 78,
                "rating": 6.3,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 9,
                "accurate_pass": 6,
                "clearances": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603921,
              "match_date": "2026-04-08",
              "home_team": "Al-Ahli Doha",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Al Duhail",
              "opponent": "Al-Ahli Doha",
              "stats": {
                "minutes": 45,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 13,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603914,
              "match_date": "2026-04-04",
              "home_team": "Al Duhail",
              "away_team": "Al-Gharafa",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Al Duhail",
              "opponent": "Al-Gharafa",
              "stats": {
                "minutes": 29,
                "rating": 7.7,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 13,
                "accurate_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 836,
            "combined_rank_score": 333.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 420.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "projected_match_rating": 6.6724,
            "source_file": "data/player_rankings.csv",
            "player_name": "Almoez Ali",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Alex Collado",
                  "ranking": 831
                },
                {
                  "player_name": "Petter Nosakhare Dahl",
                  "ranking": 832
                },
                {
                  "player_name": "Josue Ndenge Kongolo",
                  "ranking": 833
                },
                {
                  "player_name": "Emerson Batalla",
                  "ranking": 834
                },
                {
                  "player_name": "Josafat Mendes",
                  "ranking": 835
                }
              ],
              "lower": [
                {
                  "player_name": "David Planka",
                  "ranking": 837
                },
                {
                  "player_name": "Braian Aguirre",
                  "ranking": 838
                },
                {
                  "player_name": "Juan Manuel Rengifo",
                  "ranking": 839
                },
                {
                  "player_name": "Kouadio Ange Ahoussou",
                  "ranking": 840
                },
                {
                  "player_name": "Rodrigão",
                  "ranking": 841
                }
              ]
            }
          }
        },
        "Edmilson Junior": {
          "player_id": 797734,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 180,
          "market_value": 1900000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 88.6929,
            "minutes": 88,
            "total_pass": 41,
            "accurate_pass": 36,
            "ball_recovery": 3,
            "duels_won": 3,
            "total_shots": 2,
            "total_long_balls": 5,
            "accurate_long_balls": 3,
            "total_own_half_passes": 20,
            "accurate_own_half_passes": 18,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 18,
            "crosses_total": 3,
            "crosses_accurate": 1,
            "touches": 56,
            "possession_lost": 8.8311,
            "dispossessed": 0.9812,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 1,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 2,
            "goal_rate": 0.9812,
            "goals": 0,
            "shots_on_target": 1,
            "shots_off_target": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 42,
            "total_progression": 0,
            "progressive_carries": 2,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.439,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Remo Freuler",
            "opponent_faced": "Remo Freuler",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "fifa_overall": 82.0,
            "projected_goals": 0,
            "goal_probability": 0.2878
          },
          "latest_10_games": [
            {
              "match_id": 15603929,
              "match_date": "2026-04-27",
              "home_team": "Qatar SC",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 1,
                "total_shots": 1,
                "total_pass": 52,
                "accurate_pass": 47,
                "key_pass": 3,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603914,
              "match_date": "2026-04-04",
              "home_team": "Al Duhail",
              "away_team": "Al-Gharafa",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Al-Gharafa",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 54,
                "accurate_pass": 51,
                "key_pass": 1,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603903,
              "match_date": "2026-03-17",
              "home_team": "Al Shamal SC",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Al Shamal SC",
              "stats": {
                "minutes": 89,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 32,
                "accurate_pass": 26,
                "key_pass": 1,
                "interceptions": 2,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 943,
            "combined_rank_score": 295.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 340.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "projected_match_rating": 6.6929,
            "source_file": "data/player_rankings.csv",
            "player_name": "Edmilson Junior",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Hamdy Fathy",
                  "ranking": 938
                },
                {
                  "player_name": "Franco Tongya",
                  "ranking": 939
                },
                {
                  "player_name": "Dario Marešić",
                  "ranking": 940
                },
                {
                  "player_name": "Milán Vitális",
                  "ranking": 941
                },
                {
                  "player_name": "Noah Fernandez",
                  "ranking": 942
                }
              ],
              "lower": [
                {
                  "player_name": "Jordan Barrera",
                  "ranking": 944
                },
                {
                  "player_name": "Hugo Quintana",
                  "ranking": 945
                },
                {
                  "player_name": "Ronaldo",
                  "ranking": 946
                },
                {
                  "player_name": "Mao Hosoya",
                  "ranking": 947
                },
                {
                  "player_name": "Martin Zlomislić",
                  "ranking": 948
                }
              ]
            }
          }
        },
        "Karim Boudiaf": {
          "player_id": 303826,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 12,
          "height": 190,
          "market_value": 160000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0981,
            "assists": 0,
            "expected_goals": 0.0491,
            "rating": 86.6724,
            "minutes": 90,
            "total_pass": 45,
            "accurate_pass": 36,
            "ball_recovery": 3,
            "duels_won": 4,
            "total_shots": 1,
            "opponent_faced": "Granit Xhaka",
            "matchup_zone": "Midfield lane",
            "antagonist_source": "midfield_pairing",
            "fifa_overall": 80.0,
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0372
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 6658,
            "combined_rank_score": 569.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 718.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "starter",
            "projected_match_rating": 6.6724,
            "source_file": "data/player_rankings.csv",
            "player_name": "Karim Boudiaf",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Elián Quesada",
                  "ranking": 6653
                },
                {
                  "player_name": "Ibrahim Alma",
                  "ranking": 6654
                },
                {
                  "player_name": "Lusajo Mwaikenda",
                  "ranking": 6655
                },
                {
                  "player_name": "Agustín Heredia",
                  "ranking": 6656
                },
                {
                  "player_name": "Lucas Mancinelli",
                  "ranking": 6657
                }
              ],
              "lower": [
                {
                  "player_name": "Shaquan Davis",
                  "ranking": 6659
                },
                {
                  "player_name": "Ronny Borja",
                  "ranking": 6660
                },
                {
                  "player_name": "Mohammad Al Daoud",
                  "ranking": 6661
                },
                {
                  "player_name": "Brad-Hamilton Mantsounga",
                  "ranking": 6662
                },
                {
                  "player_name": "Georgios Kornezos",
                  "ranking": 6663
                }
              ]
            }
          }
        },
        "Ahmed Fathi": {
          "player_id": 911427,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 20,
          "height": 166,
          "market_value": 270000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 88.0646,
            "minutes": 83,
            "total_pass": 59,
            "accurate_pass": 54,
            "ball_recovery": 4,
            "duels_won": 6,
            "total_shots": 1,
            "total_long_balls": 4,
            "accurate_long_balls": 3,
            "total_own_half_passes": 34,
            "accurate_own_half_passes": 33,
            "total_opp_half_passes": 24,
            "accurate_opp_half_passes": 21,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 72,
            "possession_lost": 6.6233,
            "dispossessed": 0.9812,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 2,
            "interceptions": 3,
            "tackles_won": 2,
            "tackles": 4,
            "clearances": 4,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 2,
            "fouls": 2,
            "fouls_drawn": 2,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 1,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 39,
            "total_progression": 54,
            "progressive_carries": 0,
            "dribbles_attempted": 1,
            "dribbles_successful": 0.3,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.344,
            "pressing_faced": "LOW",
            "matchup_zone": "CDM vs CDM",
            "numerical_situation": "1v1",
            "opponent_defenders": "Remo Freuler",
            "opponent_faced": "Remo Freuler",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "fifa_overall": 81.0,
            "projected_goals": 0,
            "goal_probability": 0.025
          },
          "latest_10_games": [
            {
              "match_id": 15603932,
              "match_date": "2026-04-27",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Arabi SC",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Arabi SC",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 70,
                "rating": 6.9,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 40,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 4
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603916,
              "match_date": "2026-04-08",
              "home_team": "Al-Arabi SC",
              "away_team": "Qatar SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Arabi SC",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 1,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 38,
                "key_pass": 1,
                "tackles": 6,
                "tackles_won": 3,
                "aerial_won": 2,
                "duels_won": 8,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603904,
              "match_date": "2026-04-03",
              "home_team": "Al-Shahaniya",
              "away_team": "Al-Arabi SC",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Arabi SC",
              "opponent": "Al-Shahaniya",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 76,
                "accurate_pass": 71,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603899,
              "match_date": "2026-03-17",
              "home_team": "Al-Arabi SC",
              "away_team": "Al-Sadd",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Arabi SC",
              "opponent": "Al-Sadd",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 74,
                "accurate_pass": 71,
                "tackles": 4,
                "tackles_won": 4,
                "interceptions": 3,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4866,
            "combined_rank_score": 484.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 568.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "starter",
            "projected_match_rating": 7.0646,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ahmed Fathi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Frederik Heiselberg",
                  "ranking": 4861
                },
                {
                  "player_name": "Ronaldo Araya",
                  "ranking": 4862
                },
                {
                  "player_name": "Jakub Luka",
                  "ranking": 4863
                },
                {
                  "player_name": "Noah Abatneh",
                  "ranking": 4864
                },
                {
                  "player_name": "Filip Lichý",
                  "ranking": 4865
                }
              ],
              "lower": [
                {
                  "player_name": "Josimar Mendez",
                  "ranking": 4867
                },
                {
                  "player_name": "Axel Cañete",
                  "ranking": 4868
                },
                {
                  "player_name": "Franco Muñoz",
                  "ranking": 4869
                },
                {
                  "player_name": "Papa Daniel",
                  "ranking": 4870
                },
                {
                  "player_name": "Alagie Saine",
                  "ranking": 4871
                }
              ]
            }
          }
        },
        "Jassem Gaber Abdulsallam": {
          "player_id": 1014561,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 5,
          "height": 183,
          "market_value": 475000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 86.7425,
            "minutes": 85,
            "total_pass": 35,
            "accurate_pass": 27,
            "ball_recovery": 5,
            "duels_won": 4,
            "total_shots": 0,
            "total_long_balls": 5,
            "accurate_long_balls": 3,
            "total_own_half_passes": 24,
            "accurate_own_half_passes": 18,
            "total_opp_half_passes": 12,
            "accurate_opp_half_passes": 10,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 49,
            "possession_lost": 9.8123,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_won": 3,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 3,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 21,
            "total_progression": 40,
            "progressive_carries": 0,
            "opponent_faced": "Johan Manzambi",
            "matchup_zone": "Midfield lane",
            "antagonist_source": "midfield_pairing",
            "fifa_overall": 80.0,
            "projected_goals": 0,
            "goal_probability": 0.0071
          },
          "latest_10_games": [
            {
              "match_id": 15603932,
              "match_date": "2026-04-27",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Arabi SC",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Al-Rayyan",
              "opponent": "Al-Arabi SC",
              "stats": {
                "minutes": 29,
                "rating": 6.9,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 19,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603920,
              "match_date": "2026-04-08",
              "home_team": "Al-Rayyan",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Rayyan",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 76,
                "accurate_pass": 70,
                "tackles": 2,
                "tackles_won": 1,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Rayyan",
              "opponent": "Al-Sadd",
              "stats": {
                "minutes": 87,
                "rating": 6.9,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 28,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15737494,
              "match_date": "2026-03-17",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Wakrah",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Al-Rayyan",
              "opponent": "Al-Wakrah",
              "stats": {
                "minutes": 15,
                "rating": 7.2,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 4,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3024,
            "combined_rank_score": 472.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 584.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "projected_match_rating": 6.7425,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jassem Gaber Abdulsallam",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Taisei Inoue",
                  "ranking": 3019
                },
                {
                  "player_name": "Badr Gaddarine",
                  "ranking": 3020
                },
                {
                  "player_name": "Zalán Kerezsi",
                  "ranking": 3021
                },
                {
                  "player_name": "Mamane Amadou Sabo",
                  "ranking": 3022
                },
                {
                  "player_name": "Redouan Ait Lamkadem",
                  "ranking": 3023
                }
              ],
              "lower": [
                {
                  "player_name": "Matías Dufour",
                  "ranking": 3025
                },
                {
                  "player_name": "Karel Pojezný",
                  "ranking": 3026
                },
                {
                  "player_name": "Mayk",
                  "ranking": 3027
                },
                {
                  "player_name": "Dannovi Quiñonez",
                  "ranking": 3028
                },
                {
                  "player_name": "Panagiotis Deligiannidis",
                  "ranking": 3029
                }
              ]
            }
          }
        },
        "Homam Al-Amin": {
          "player_id": 933433,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 14,
          "height": 186,
          "market_value": 460000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 2,
            "duels_won": 4,
            "rating": 86.5742,
            "minutes": 90,
            "total_pass": 40,
            "accurate_pass": 32,
            "tackles_in_zone": 0.9,
            "tackles_won_in_zone": 1.0,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.736,
            "opponent_faced": "Breel Embolo",
            "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "antagonist_source": "defensive_duel",
            "fifa_overall": 80.0,
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0415
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3155,
            "combined_rank_score": 495.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 626.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "projected_match_rating": 6.5742,
            "source_file": "data/player_rankings.csv",
            "player_name": "Homam Al-Amin",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Anas Haj Mohamed",
                  "ranking": 3150
                },
                {
                  "player_name": "Japa",
                  "ranking": 3151
                },
                {
                  "player_name": "Keiller",
                  "ranking": 3152
                },
                {
                  "player_name": "Artur Serobyan",
                  "ranking": 3153
                },
                {
                  "player_name": "Haythem Jouini",
                  "ranking": 3154
                }
              ],
              "lower": [
                {
                  "player_name": "Mauro Silveira",
                  "ranking": 3156
                },
                {
                  "player_name": "Matías Viña",
                  "ranking": 3157
                },
                {
                  "player_name": "Guido Vadalá",
                  "ranking": 3158
                },
                {
                  "player_name": "Jesús Maraude",
                  "ranking": 3159
                },
                {
                  "player_name": "Valeri Gromyko",
                  "ranking": 3160
                }
              ]
            }
          }
        },
        "Boualem Khoukhi": {
          "player_id": 233746,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 16,
          "height": 183,
          "market_value": 190000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 3,
            "aerial_won": 2,
            "rating": 85.4447,
            "minutes": 88,
            "total_pass": 47,
            "accurate_pass": 43,
            "duels_won": 5,
            "total_long_balls": 4,
            "accurate_long_balls": 3,
            "total_own_half_passes": 30,
            "accurate_own_half_passes": 28,
            "total_opp_half_passes": 17,
            "accurate_opp_half_passes": 15,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 55,
            "possession_lost": 5.1024,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 1,
            "shots_on_target": 0,
            "shots_off_target": 1,
            "big_chances_created": 1,
            "xgot": 0.0,
            "ball_carries": 31,
            "total_progression": 16,
            "progressive_carries": 0,
            "key_pass": 2,
            "tackles_in_zone": 1.9,
            "tackles_won_in_zone": 1.2,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.328,
            "opponent_faced": "Johan Manzambi",
            "pressing_zone": "Right Wing vs Left Back — Flank Battle",
            "matchup_zone": "Right Wing vs Left Back — Flank Battle",
            "antagonist_source": "defensive_duel",
            "fifa_overall": 79.0,
            "projected_goals": 0,
            "goal_probability": 0.0441
          },
          "latest_10_games": [
            {
              "match_id": 15603927,
              "match_date": "2026-04-27",
              "home_team": "Al-Sadd",
              "away_team": "Al Shamal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al Shamal SC",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assists": 0,
                "total_shots": 1,
                "total_pass": 44,
                "accurate_pass": 37,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 5,
                "aerial_won": 3,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603918,
              "match_date": "2026-04-08",
              "home_team": "Al-Sailiya",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 53,
                "accurate_pass": 47,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 43,
                "accurate_pass": 40,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603899,
              "match_date": "2026-03-17",
              "home_team": "Al-Arabi SC",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Arabi SC",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 45,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 9,
                "aerial_won": 4,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15690007,
              "match_date": "2026-03-13",
              "home_team": "Al-Sadd",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "total_shots": 1,
                "total_pass": 53,
                "accurate_pass": 48,
                "key_pass": 4,
                "clearances": 2,
                "aerial_won": 6,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 6039,
            "combined_rank_score": 616.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 817.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "starter",
            "projected_match_rating": 6.4447,
            "source_file": "data/player_rankings.csv",
            "player_name": "Boualem Khoukhi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jasmin Čeliković",
                  "ranking": 6034
                },
                {
                  "player_name": "Joaquim Coulanges",
                  "ranking": 6035
                },
                {
                  "player_name": "Yeison Molina",
                  "ranking": 6036
                },
                {
                  "player_name": "Nikolas Brandis",
                  "ranking": 6037
                },
                {
                  "player_name": "Eryk Kobza",
                  "ranking": 6038
                }
              ],
              "lower": [
                {
                  "player_name": "Martin Šimko",
                  "ranking": 6040
                },
                {
                  "player_name": "Oskar Snorre",
                  "ranking": 6041
                },
                {
                  "player_name": "Matteo Campagna",
                  "ranking": 6042
                },
                {
                  "player_name": "Tobias Bovone",
                  "ranking": 6043
                },
                {
                  "player_name": "Yeong-chan Kim",
                  "ranking": 6044
                }
              ]
            }
          }
        },
        "Pedro Miguel": {
          "player_id": 884189,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 2,
          "height": 188,
          "market_value": 160000,
          "stats": {
            "interceptions": 0,
            "tackles": 2,
            "tackles_won": 0,
            "clearances": 4,
            "aerial_won": 1,
            "rating": 86.7668,
            "minutes": 76,
            "total_pass": 32,
            "accurate_pass": 26,
            "duels_won": 4,
            "total_long_balls": 6,
            "accurate_long_balls": 2,
            "total_own_half_passes": 20,
            "accurate_own_half_passes": 18,
            "total_opp_half_passes": 12,
            "accurate_opp_half_passes": 8,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 44,
            "possession_lost": 6.4761,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 1,
            "shots_on_target": 1,
            "shots_off_target": 1,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 22,
            "total_progression": 16,
            "progressive_carries": 0,
            "key_pass": 1,
            "tackles_in_zone": 0.9,
            "tackles_won_in_zone": 1.0,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.736,
            "opponent_faced": "Breel Embolo",
            "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "antagonist_source": "defensive_duel",
            "fifa_overall": 80.0,
            "projected_goals": 0,
            "goal_probability": 0.0569
          },
          "latest_10_games": [
            {
              "match_id": 15603927,
              "match_date": "2026-04-27",
              "home_team": "Al-Sadd",
              "away_team": "Al Shamal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al Shamal SC",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 1,
                "total_shots": 0,
                "total_pass": 40,
                "accurate_pass": 35,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603918,
              "match_date": "2026-04-08",
              "home_team": "Al-Sailiya",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 40,
                "accurate_pass": 37,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 5,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 32,
                "accurate_pass": 25,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603899,
              "match_date": "2026-03-17",
              "home_team": "Al-Arabi SC",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Arabi SC",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 39,
                "accurate_pass": 31,
                "clearances": 7,
                "aerial_won": 3,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15690007,
              "match_date": "2026-03-13",
              "home_team": "Al-Sadd",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Al-Sadd",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 26,
                "rating": 6.8,
                "assists": 0,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 10,
                "accurate_pass": 7,
                "tackles": 1,
                "interceptions": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 6613,
            "combined_rank_score": 569.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 718.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "starter",
            "projected_match_rating": 6.7668,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pedro Miguel",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Pedro Alvarez",
                  "ranking": 6608
                },
                {
                  "player_name": "José Tarán",
                  "ranking": 6609
                },
                {
                  "player_name": "Kristjan Trdin",
                  "ranking": 6610
                },
                {
                  "player_name": "Khalifah Al-Dawsari",
                  "ranking": 6611
                },
                {
                  "player_name": "Abdel Rahman Rashdan",
                  "ranking": 6612
                }
              ],
              "lower": [
                {
                  "player_name": "Kyrylo Sigeev",
                  "ranking": 6614
                },
                {
                  "player_name": "Gastón Rodríguez",
                  "ranking": 6615
                },
                {
                  "player_name": "Hamza Janan Allah",
                  "ranking": 6616
                },
                {
                  "player_name": "Ján Murgaš",
                  "ranking": 6617
                },
                {
                  "player_name": "Seif Ali Hindi",
                  "ranking": 6618
                }
              ]
            }
          }
        },
        "Ayoub Al Oui": {
          "player_id": 1396639,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 13,
          "height": 178,
          "market_value": 360000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 1,
            "rating": 85.6169,
            "minutes": 88,
            "total_pass": 25,
            "accurate_pass": 18,
            "duels_won": 4,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 12,
            "accurate_own_half_passes": 10,
            "total_opp_half_passes": 12,
            "accurate_opp_half_passes": 8,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 40,
            "possession_lost": 10.3029,
            "dispossessed": 0.9812,
            "duels_lost": 5,
            "aerial_lost": 2,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 1,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 14,
            "total_progression": 33,
            "progressive_carries": 1,
            "key_pass": 1,
            "tackles_in_zone": 1.9,
            "tackles_won_in_zone": 1.4,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.436,
            "opponent_faced": "Granit Xhaka",
            "pressing_zone": "Left Wing vs Right Back — Flank Battle",
            "matchup_zone": "Left Wing vs Right Back — Flank Battle",
            "antagonist_source": "defensive_duel",
            "fifa_overall": 80.0,
            "projected_goals": 0,
            "goal_probability": 0.0194
          },
          "latest_10_games": [
            {
              "match_id": 15603926,
              "match_date": "2026-04-27",
              "home_team": "Al-Gharafa",
              "away_team": "Al-Shahaniya",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al-Shahaniya",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 26,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 5,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603914,
              "match_date": "2026-04-04",
              "home_team": "Al Duhail",
              "away_team": "Al-Gharafa",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al Duhail",
              "stats": {
                "minutes": 90,
                "rating": 5.6,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 16,
                "key_pass": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603905,
              "match_date": "2026-03-18",
              "home_team": "Al-Gharafa",
              "away_team": "Al-Ahli Doha",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al-Ahli Doha",
              "stats": {
                "minutes": 90,
                "rating": 5.5,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 28,
                "accurate_pass": 21,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3950,
            "combined_rank_score": 547.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 712.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "projected_match_rating": 5.6169,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ayoub Al Oui",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Matej Mamić",
                  "ranking": 3945
                },
                {
                  "player_name": "Kelvin Osorio",
                  "ranking": 3946
                },
                {
                  "player_name": "Ruben Manjarres",
                  "ranking": 3947
                },
                {
                  "player_name": "Jovan Manev",
                  "ranking": 3948
                },
                {
                  "player_name": "Eus Waayers",
                  "ranking": 3949
                }
              ],
              "lower": [
                {
                  "player_name": "Jakub Kolisek",
                  "ranking": 3951
                },
                {
                  "player_name": "Alassane Maodo Kante",
                  "ranking": 3952
                },
                {
                  "player_name": "Arthur Wenderroscky",
                  "ranking": 3953
                },
                {
                  "player_name": "Nabil Khali",
                  "ranking": 3954
                },
                {
                  "player_name": "Edmilson Gabriel Dove",
                  "ranking": 3955
                }
              ]
            }
          }
        },
        "Mahmud Abunad": {
          "player_id": 1012458,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 191,
          "market_value": 420000,
          "stats": {
            "saves": 3,
            "goals_prevented": 0.2719,
            "rating": 87.0179,
            "minutes": 88,
            "total_pass": 25,
            "accurate_pass": 19,
            "total_long_balls": 11,
            "accurate_long_balls": 4,
            "touches": 37,
            "clearances": 2,
            "ball_recovery": 6,
            "high_claims": 1,
            "punches": 1.9625,
            "aerial_won": 1,
            "sweeper_actions": 1,
            "sweeper_accurate": 1,
            "saves_inside_box": 2,
            "possession_lost": 6.8686,
            "duels_won": 2,
            "duels_lost": 0,
            "total_contest": 1,
            "won_contest": 1,
            "fouls": 0,
            "fouls_drawn": 1,
            "total_own_half_passes": 18,
            "accurate_own_half_passes": 16,
            "expected_saves": 1.86,
            "high_pressure_saves": 0.71,
            "shots_faced": 4.0,
            "opponent_faced": "Dan Ndoye, Granit Xhaka",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "fifa_overall": 80.0,
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0
          },
          "latest_10_games": [
            {
              "match_id": 15603932,
              "match_date": "2026-04-27",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Arabi SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Rayyan",
              "opponent": "Al-Arabi SC",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 21,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 6,
                "saves": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603920,
              "match_date": "2026-04-08",
              "home_team": "Al-Rayyan",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Rayyan",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 13,
                "duels_won": 2,
                "ball_recovery": 6,
                "saves": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Rayyan",
              "opponent": "Al-Sadd",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 21,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 6,
                "saves": 7
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15737494,
              "match_date": "2026-03-17",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Wakrah",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Rayyan",
              "opponent": "Al-Wakrah",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 22,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 5,
                "saves": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3351,
            "combined_rank_score": 522.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 673.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "projected_match_rating": 7.0179,
            "source_file": "data/player_rankings.csv",
            "player_name": "Mahmud Abunad",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Miguel Cubo",
                  "ranking": 3346
                },
                {
                  "player_name": "Jan Kliment",
                  "ranking": 3347
                },
                {
                  "player_name": "Seung-wan Ryu",
                  "ranking": 3348
                },
                {
                  "player_name": "Matija Ljujić",
                  "ranking": 3349
                },
                {
                  "player_name": "Roman Čerepkai",
                  "ranking": 3350
                }
              ],
              "lower": [
                {
                  "player_name": "Facundo Silvera",
                  "ranking": 3352
                },
                {
                  "player_name": "Hamza El Wasti",
                  "ranking": 3353
                },
                {
                  "player_name": "Jhon Banguera",
                  "ranking": 3354
                },
                {
                  "player_name": "Nikola Bukumira",
                  "ranking": 3355
                },
                {
                  "player_name": "José Álvarez",
                  "ranking": 3356
                }
              ]
            }
          }
        }
      },
      "bench_players": {
        "Meshaal Barsham": {
          "player_id": 891157,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 180,
          "market_value": 660000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0,
            "rating": 86.2837,
            "minutes": 4,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0958,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.3544,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.39,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 15603927,
              "match_date": "2026-04-27",
              "home_team": "Al-Sadd",
              "away_team": "Al Shamal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al Shamal SC",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 20,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 8,
                "saves": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603918,
              "match_date": "2026-04-08",
              "home_team": "Al-Sailiya",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 17,
                "clearances": 2,
                "ball_recovery": 3,
                "saves": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 11,
                "clearances": 1,
                "ball_recovery": 10,
                "saves": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603899,
              "match_date": "2026-03-17",
              "home_team": "Al-Arabi SC",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Arabi SC",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 14,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 9,
                "saves": 6
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15690007,
              "match_date": "2026-03-13",
              "home_team": "Al-Sadd",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 90,
                "rating": 5.6,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 15,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2279,
            "combined_rank_score": 457.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 590.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "substitute",
            "projected_match_rating": 6.2837,
            "source_file": "data/player_rankings.csv",
            "player_name": "Meshaal Barsham",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Massire Sylla",
                  "ranking": 2274
                },
                {
                  "player_name": "Felipe Cairus",
                  "ranking": 2275
                },
                {
                  "player_name": "Kenta Itakura",
                  "ranking": 2276
                },
                {
                  "player_name": "Lovro Banovec",
                  "ranking": 2277
                },
                {
                  "player_name": "Julien Eymard Bationo",
                  "ranking": 2278
                }
              ],
              "lower": [
                {
                  "player_name": "Christos Sielis",
                  "ranking": 2280
                },
                {
                  "player_name": "Mikael Soisalo",
                  "ranking": 2281
                },
                {
                  "player_name": "Sekou Oumar Yansane",
                  "ranking": 2282
                },
                {
                  "player_name": "Karim El Eraki",
                  "ranking": 2283
                },
                {
                  "player_name": "Ayoub Assal",
                  "ranking": 2284
                }
              ]
            }
          }
        },
        "Sultan Al-Brake": {
          "player_id": 796497,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 18,
          "height": 175,
          "market_value": 325000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 87.4588,
            "minutes": 14,
            "total_pass": 7,
            "accurate_pass": 6,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 1.2829,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 2,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 15603929,
              "match_date": "2026-04-27",
              "home_team": "Qatar SC",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 79,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 21,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603921,
              "match_date": "2026-04-08",
              "home_team": "Al-Ahli Doha",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Al-Ahli Doha",
              "stats": {
                "minutes": 68,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 64,
                "accurate_pass": 59,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603903,
              "match_date": "2026-03-17",
              "home_team": "Al Shamal SC",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Al Shamal SC",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 49,
                "accurate_pass": 37,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4210,
            "combined_rank_score": 456.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 523.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.4588,
            "source_file": "data/player_rankings.csv",
            "player_name": "Sultan Al-Brake",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kevin Parzajuk",
                  "ranking": 4205
                },
                {
                  "player_name": "Godfried Roemeratoe",
                  "ranking": 4206
                },
                {
                  "player_name": "Wilhelm Nilsson",
                  "ranking": 4207
                },
                {
                  "player_name": "Mateja Milovanović",
                  "ranking": 4208
                },
                {
                  "player_name": "Burak Ince",
                  "ranking": 4209
                }
              ],
              "lower": [
                {
                  "player_name": "Mateo Caballero",
                  "ranking": 4211
                },
                {
                  "player_name": "Achilleas Poungouras",
                  "ranking": 4212
                },
                {
                  "player_name": "Filip Bačkulja",
                  "ranking": 4213
                },
                {
                  "player_name": "Frederik Brandhof",
                  "ranking": 4214
                },
                {
                  "player_name": "Dylan Lozano",
                  "ranking": 4215
                }
              ]
            }
          }
        },
        "Lucas Mendes": {
          "player_id": 243199,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 2,
          "height": 184,
          "market_value": 315000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "rating": 89.2789,
            "minutes": 14,
            "total_pass": 9,
            "accurate_pass": 8,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 1.2208,
            "dispossessed": 0.9812,
            "duels_lost": 0,
            "aerial_lost": 3,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 11,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 16005355,
              "match_date": "2026-04-27",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Sailiya",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assists": 1,
                "total_shots": 0,
                "total_pass": 92,
                "accurate_pass": 88,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15941217,
              "match_date": "2026-04-08",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Gharafa",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Gharafa",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 64,
                "accurate_pass": 56,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 9,
                "aerial_won": 8,
                "duels_won": 9,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15896915,
              "match_date": "2026-04-03",
              "home_team": "Qatar SC",
              "away_team": "Al-Wakrah",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 51,
                "accurate_pass": 45,
                "interceptions": 1,
                "clearances": 9,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15737494,
              "match_date": "2026-03-17",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Wakrah",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 20,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 4,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4333,
            "combined_rank_score": 392.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 392.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 7.2789,
            "source_file": "data/player_rankings.csv",
            "player_name": "Lucas Mendes",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Ryun-sung Kim",
                  "ranking": 4328
                },
                {
                  "player_name": "Delio Ramírez",
                  "ranking": 4329
                },
                {
                  "player_name": "Kazuki Takahashi",
                  "ranking": 4330
                },
                {
                  "player_name": "Nicolás Wunsch",
                  "ranking": 4331
                },
                {
                  "player_name": "Sung-wook Hong",
                  "ranking": 4332
                }
              ],
              "lower": [
                {
                  "player_name": "Samuel Ramos",
                  "ranking": 4334
                },
                {
                  "player_name": "Marko Malenica",
                  "ranking": 4335
                },
                {
                  "player_name": "Dantaye Gilbert",
                  "ranking": 4336
                },
                {
                  "player_name": "Pano Qirko",
                  "ranking": 4337
                },
                {
                  "player_name": "Lucão",
                  "ranking": 4338
                }
              ]
            }
          }
        },
        "Ahmed Al-Ganehi": {
          "player_id": 936542,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 10,
          "height": 178,
          "market_value": 475000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 86.2381,
            "minutes": 22,
            "total_pass": 6,
            "accurate_pass": 5,
            "ball_recovery": 1,
            "duels_won": 1,
            "total_shots": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 2.156,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 0,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.499,
            "bench_expected_minutes": 21.97,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 15603926,
              "match_date": "2026-04-27",
              "home_team": "Al-Gharafa",
              "away_team": "Al-Shahaniya",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al-Shahaniya",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 37,
                "accurate_pass": 29,
                "tackles": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15941217,
              "match_date": "2026-04-08",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Gharafa",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al-Wakrah",
              "stats": {
                "minutes": 82,
                "rating": 6.5,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 24,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603914,
              "match_date": "2026-04-04",
              "home_team": "Al Duhail",
              "away_team": "Al-Gharafa",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al Duhail",
              "stats": {
                "minutes": 59,
                "rating": 6.4,
                "assists": 1,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 8,
                "key_pass": 1,
                "interceptions": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3033,
            "combined_rank_score": 472.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 584.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "substitute",
            "projected_match_rating": 6.2381,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ahmed Al-Ganehi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Dannovi Quiñonez",
                  "ranking": 3028
                },
                {
                  "player_name": "Panagiotis Deligiannidis",
                  "ranking": 3029
                },
                {
                  "player_name": "Yudai Konishi",
                  "ranking": 3030
                },
                {
                  "player_name": "Fredrik Aursnes",
                  "ranking": 3031
                },
                {
                  "player_name": "Sadick Abubakar",
                  "ranking": 3032
                }
              ],
              "lower": [
                {
                  "player_name": "James Ajako",
                  "ranking": 3034
                },
                {
                  "player_name": "Sebastian Boháč",
                  "ranking": 3035
                },
                {
                  "player_name": "Takahiro Sekine",
                  "ranking": 3036
                },
                {
                  "player_name": "Felipe Longo",
                  "ranking": 3037
                },
                {
                  "player_name": "Ahmed Khalil",
                  "ranking": 3038
                }
              ]
            }
          }
        },
        "Mohamed Naceur Almanai": {
          "player_id": 1083016,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 12,
          "height": 189,
          "market_value": 470000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 90.276,
            "minutes": 22,
            "total_pass": 7,
            "accurate_pass": 6,
            "ball_recovery": 1,
            "duels_won": 1,
            "total_shots": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 1.7559,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 2,
            "fouls": 1,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 7,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.499,
            "bench_expected_minutes": 21.97,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 15603927,
              "match_date": "2026-04-27",
              "home_team": "Al-Sadd",
              "away_team": "Al Shamal SC",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Shamal SC",
              "opponent": "Al-Sadd",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 13,
                "accurate_pass": 10,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603919,
              "match_date": "2026-04-08",
              "home_team": "Al-Shahaniya",
              "away_team": "Al Shamal SC",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Shamal SC",
              "opponent": "Al-Shahaniya",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 55,
                "accurate_pass": 47,
                "tackles": 3,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603912,
              "match_date": "2026-04-04",
              "home_team": "Al Shamal SC",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al Shamal SC",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 76,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 12,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3073,
            "combined_rank_score": 266.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 170.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "substitute",
            "projected_match_rating": 6.276,
            "source_file": "data/player_rankings.csv",
            "player_name": "Mohamed Naceur Almanai",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Keita Takahata",
                  "ranking": 3068
                },
                {
                  "player_name": "Toshiki Takahashi",
                  "ranking": 3069
                },
                {
                  "player_name": "Martin Šubert",
                  "ranking": 3070
                },
                {
                  "player_name": "Luifer Hernández",
                  "ranking": 3071
                },
                {
                  "player_name": "Karamba Gassama",
                  "ranking": 3072
                }
              ],
              "lower": [
                {
                  "player_name": "Epameinondas Pantelakis",
                  "ranking": 3074
                },
                {
                  "player_name": "Mohamed El-Shenawy",
                  "ranking": 3075
                },
                {
                  "player_name": "Marcos Victor",
                  "ranking": 3076
                },
                {
                  "player_name": "Bart Meijers",
                  "ranking": 3077
                },
                {
                  "player_name": "Ahmed Basil",
                  "ranking": 3078
                }
              ]
            }
          }
        },
        "Hassan Al Haydos": {
          "player_id": 93953,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 10,
          "height": 174,
          "market_value": 330000,
          "stats": {
            "expected_goals": 0.0,
            "goal_rate": 0.0001,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0,
            "key_pass": 0,
            "rating": 86.3873,
            "minutes": 25,
            "total_shots": 0,
            "duels_won": 1,
            "aerial_won": 0,
            "total_pass": 4,
            "accurate_pass": 3,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 5,
            "possession_lost": 1.103,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 3,
            "total_progression": 6,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 15603918,
              "match_date": "2026-04-08",
              "home_team": "Al-Sailiya",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Al-Sadd",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 19,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 1,
                "total_pass": 24,
                "accurate_pass": 20,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Al-Sadd",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 10,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15690007,
              "match_date": "2026-03-13",
              "home_team": "Al-Sadd",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Al-Sadd",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 9,
                "rating": 7.1,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 10,
                "key_pass": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4147,
            "combined_rank_score": 554.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 719.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "projected_match_rating": 6.3873,
            "source_file": "data/player_rankings.csv",
            "player_name": "Hassan Al Haydos",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kwaku Bonsu Osei Gaucho",
                  "ranking": 4142
                },
                {
                  "player_name": "Boyd Reith",
                  "ranking": 4143
                },
                {
                  "player_name": "Andres Correa",
                  "ranking": 4144
                },
                {
                  "player_name": "Gianfranco Trasante",
                  "ranking": 4145
                },
                {
                  "player_name": "Omar El Wahsh",
                  "ranking": 4146
                }
              ],
              "lower": [
                {
                  "player_name": "Ludwig Vraa-Jensen",
                  "ranking": 4148
                },
                {
                  "player_name": "Santiago Marcel",
                  "ranking": 4149
                },
                {
                  "player_name": "Bruno Henrique",
                  "ranking": 4150
                },
                {
                  "player_name": "Déo Bassinga",
                  "ranking": 4151
                },
                {
                  "player_name": "Jerolldino Bergraaf",
                  "ranking": 4152
                }
              ]
            }
          }
        },
        "Yusuf Abdurisag": {
          "player_id": 985156,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 13,
          "height": 175,
          "market_value": 290000,
          "stats": {
            "expected_goals": 0.0,
            "goal_rate": 0.0003,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0,
            "key_pass": 0,
            "rating": 86.526,
            "minutes": 25,
            "total_shots": 1,
            "duels_won": 1,
            "aerial_won": 1,
            "total_pass": 4,
            "accurate_pass": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 2.8954,
            "dispossessed": 1.9625,
            "duels_lost": 2,
            "aerial_lost": 3,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 1,
            "ball_carries": 5,
            "total_progression": 8,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16005355,
              "match_date": "2026-04-27",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Sailiya",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 89,
                "rating": 7.3,
                "assists": 1,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 27,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15941217,
              "match_date": "2026-04-08",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Gharafa",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Gharafa",
              "stats": {
                "minutes": 81,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 20,
                "accurate_pass": 17,
                "key_pass": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15896915,
              "match_date": "2026-04-03",
              "home_team": "Qatar SC",
              "away_team": "Al-Wakrah",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 80,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 23,
                "accurate_pass": 15,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15737494,
              "match_date": "2026-03-17",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Wakrah",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 6,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 7,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4562,
            "combined_rank_score": 552.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 707.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 6.526,
            "source_file": "data/player_rankings.csv",
            "player_name": "Yusuf Abdurisag",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Brice Negouai",
                  "ranking": 4557
                },
                {
                  "player_name": "Damjan Vuklišević",
                  "ranking": 4558
                },
                {
                  "player_name": "Oliver Zelenika",
                  "ranking": 4559
                },
                {
                  "player_name": "Marko Mladenović",
                  "ranking": 4560
                },
                {
                  "player_name": "Max Stryjek",
                  "ranking": 4561
                }
              ],
              "lower": [
                {
                  "player_name": "Adrián Colombino",
                  "ranking": 4563
                },
                {
                  "player_name": "Ali Reghba",
                  "ranking": 4564
                },
                {
                  "player_name": "Faad Sana",
                  "ranking": 4565
                },
                {
                  "player_name": "Nikola Marjanovic",
                  "ranking": 4566
                },
                {
                  "player_name": "János Hahn",
                  "ranking": 4567
                }
              ]
            }
          }
        }
      },
      "substitutes": {
        "Meshaal Barsham": {
          "player_id": 891157,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 180,
          "market_value": 660000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0,
            "rating": 86.2837,
            "minutes": 4,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0958,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.3544,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.39,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 15603927,
              "match_date": "2026-04-27",
              "home_team": "Al-Sadd",
              "away_team": "Al Shamal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al Shamal SC",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 20,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 8,
                "saves": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603918,
              "match_date": "2026-04-08",
              "home_team": "Al-Sailiya",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 17,
                "clearances": 2,
                "ball_recovery": 3,
                "saves": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 11,
                "clearances": 1,
                "ball_recovery": 10,
                "saves": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603899,
              "match_date": "2026-03-17",
              "home_team": "Al-Arabi SC",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Al-Arabi SC",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 14,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 9,
                "saves": 6
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15690007,
              "match_date": "2026-03-13",
              "home_team": "Al-Sadd",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Sadd",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 90,
                "rating": 5.6,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 15,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 2279,
            "combined_rank_score": 457.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 590.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "substitute",
            "projected_match_rating": 6.2837,
            "source_file": "data/player_rankings.csv",
            "player_name": "Meshaal Barsham",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Massire Sylla",
                  "ranking": 2274
                },
                {
                  "player_name": "Felipe Cairus",
                  "ranking": 2275
                },
                {
                  "player_name": "Kenta Itakura",
                  "ranking": 2276
                },
                {
                  "player_name": "Lovro Banovec",
                  "ranking": 2277
                },
                {
                  "player_name": "Julien Eymard Bationo",
                  "ranking": 2278
                }
              ],
              "lower": [
                {
                  "player_name": "Christos Sielis",
                  "ranking": 2280
                },
                {
                  "player_name": "Mikael Soisalo",
                  "ranking": 2281
                },
                {
                  "player_name": "Sekou Oumar Yansane",
                  "ranking": 2282
                },
                {
                  "player_name": "Karim El Eraki",
                  "ranking": 2283
                },
                {
                  "player_name": "Ayoub Assal",
                  "ranking": 2284
                }
              ]
            }
          }
        },
        "Sultan Al-Brake": {
          "player_id": 796497,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 18,
          "height": 175,
          "market_value": 325000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 87.4588,
            "minutes": 14,
            "total_pass": 7,
            "accurate_pass": 6,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 1.2829,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 2,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_id": 15603929,
              "match_date": "2026-04-27",
              "home_team": "Qatar SC",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 79,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 21,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603921,
              "match_date": "2026-04-08",
              "home_team": "Al-Ahli Doha",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Al-Ahli Doha",
              "stats": {
                "minutes": 68,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 64,
                "accurate_pass": 59,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603903,
              "match_date": "2026-03-17",
              "home_team": "Al Shamal SC",
              "away_team": "Al Duhail",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Duhail",
              "opponent": "Al Shamal SC",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 49,
                "accurate_pass": 37,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4210,
            "combined_rank_score": 456.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 523.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.4588,
            "source_file": "data/player_rankings.csv",
            "player_name": "Sultan Al-Brake",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kevin Parzajuk",
                  "ranking": 4205
                },
                {
                  "player_name": "Godfried Roemeratoe",
                  "ranking": 4206
                },
                {
                  "player_name": "Wilhelm Nilsson",
                  "ranking": 4207
                },
                {
                  "player_name": "Mateja Milovanović",
                  "ranking": 4208
                },
                {
                  "player_name": "Burak Ince",
                  "ranking": 4209
                }
              ],
              "lower": [
                {
                  "player_name": "Mateo Caballero",
                  "ranking": 4211
                },
                {
                  "player_name": "Achilleas Poungouras",
                  "ranking": 4212
                },
                {
                  "player_name": "Filip Bačkulja",
                  "ranking": 4213
                },
                {
                  "player_name": "Frederik Brandhof",
                  "ranking": 4214
                },
                {
                  "player_name": "Dylan Lozano",
                  "ranking": 4215
                }
              ]
            }
          }
        },
        "Lucas Mendes": {
          "player_id": 243199,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 2,
          "height": 184,
          "market_value": 315000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "rating": 89.2789,
            "minutes": 14,
            "total_pass": 9,
            "accurate_pass": 8,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 1.2208,
            "dispossessed": 0.9812,
            "duels_lost": 0,
            "aerial_lost": 3,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 11,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.299,
            "bench_expected_minutes": 13.57,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 16005355,
              "match_date": "2026-04-27",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Sailiya",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assists": 1,
                "total_shots": 0,
                "total_pass": 92,
                "accurate_pass": 88,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15941217,
              "match_date": "2026-04-08",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Gharafa",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Gharafa",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 64,
                "accurate_pass": 56,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 9,
                "aerial_won": 8,
                "duels_won": 9,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15896915,
              "match_date": "2026-04-03",
              "home_team": "Qatar SC",
              "away_team": "Al-Wakrah",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 51,
                "accurate_pass": 45,
                "interceptions": 1,
                "clearances": 9,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15737494,
              "match_date": "2026-03-17",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Wakrah",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 20,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 4,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4333,
            "combined_rank_score": 392.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 392.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 7.2789,
            "source_file": "data/player_rankings.csv",
            "player_name": "Lucas Mendes",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Ryun-sung Kim",
                  "ranking": 4328
                },
                {
                  "player_name": "Delio Ramírez",
                  "ranking": 4329
                },
                {
                  "player_name": "Kazuki Takahashi",
                  "ranking": 4330
                },
                {
                  "player_name": "Nicolás Wunsch",
                  "ranking": 4331
                },
                {
                  "player_name": "Sung-wook Hong",
                  "ranking": 4332
                }
              ],
              "lower": [
                {
                  "player_name": "Samuel Ramos",
                  "ranking": 4334
                },
                {
                  "player_name": "Marko Malenica",
                  "ranking": 4335
                },
                {
                  "player_name": "Dantaye Gilbert",
                  "ranking": 4336
                },
                {
                  "player_name": "Pano Qirko",
                  "ranking": 4337
                },
                {
                  "player_name": "Lucão",
                  "ranking": 4338
                }
              ]
            }
          }
        },
        "Ahmed Al-Ganehi": {
          "player_id": 936542,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 10,
          "height": 178,
          "market_value": 475000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 86.2381,
            "minutes": 22,
            "total_pass": 6,
            "accurate_pass": 5,
            "ball_recovery": 1,
            "duels_won": 1,
            "total_shots": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 2.156,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 0,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.499,
            "bench_expected_minutes": 21.97,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 15603926,
              "match_date": "2026-04-27",
              "home_team": "Al-Gharafa",
              "away_team": "Al-Shahaniya",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al-Shahaniya",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 37,
                "accurate_pass": 29,
                "tackles": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15941217,
              "match_date": "2026-04-08",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Gharafa",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al-Wakrah",
              "stats": {
                "minutes": 82,
                "rating": 6.5,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 24,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603914,
              "match_date": "2026-04-04",
              "home_team": "Al Duhail",
              "away_team": "Al-Gharafa",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Gharafa",
              "opponent": "Al Duhail",
              "stats": {
                "minutes": 59,
                "rating": 6.4,
                "assists": 1,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 8,
                "key_pass": 1,
                "interceptions": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3033,
            "combined_rank_score": 472.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 584.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "substitute",
            "projected_match_rating": 6.2381,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ahmed Al-Ganehi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Dannovi Quiñonez",
                  "ranking": 3028
                },
                {
                  "player_name": "Panagiotis Deligiannidis",
                  "ranking": 3029
                },
                {
                  "player_name": "Yudai Konishi",
                  "ranking": 3030
                },
                {
                  "player_name": "Fredrik Aursnes",
                  "ranking": 3031
                },
                {
                  "player_name": "Sadick Abubakar",
                  "ranking": 3032
                }
              ],
              "lower": [
                {
                  "player_name": "James Ajako",
                  "ranking": 3034
                },
                {
                  "player_name": "Sebastian Boháč",
                  "ranking": 3035
                },
                {
                  "player_name": "Takahiro Sekine",
                  "ranking": 3036
                },
                {
                  "player_name": "Felipe Longo",
                  "ranking": 3037
                },
                {
                  "player_name": "Ahmed Khalil",
                  "ranking": 3038
                }
              ]
            }
          }
        },
        "Mohamed Naceur Almanai": {
          "player_id": 1083016,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 12,
          "height": 189,
          "market_value": 470000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 90.276,
            "minutes": 22,
            "total_pass": 7,
            "accurate_pass": 6,
            "ball_recovery": 1,
            "duels_won": 1,
            "total_shots": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 1.7559,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 2,
            "fouls": 1,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 7,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.499,
            "bench_expected_minutes": 21.97,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 15603927,
              "match_date": "2026-04-27",
              "home_team": "Al-Sadd",
              "away_team": "Al Shamal SC",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Shamal SC",
              "opponent": "Al-Sadd",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 13,
                "accurate_pass": 10,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603919,
              "match_date": "2026-04-08",
              "home_team": "Al-Shahaniya",
              "away_team": "Al Shamal SC",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al Shamal SC",
              "opponent": "Al-Shahaniya",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 55,
                "accurate_pass": 47,
                "tackles": 3,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603912,
              "match_date": "2026-04-04",
              "home_team": "Al Shamal SC",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al Shamal SC",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 76,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 12,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 3073,
            "combined_rank_score": 266.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 170.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "substitute",
            "projected_match_rating": 6.276,
            "source_file": "data/player_rankings.csv",
            "player_name": "Mohamed Naceur Almanai",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Keita Takahata",
                  "ranking": 3068
                },
                {
                  "player_name": "Toshiki Takahashi",
                  "ranking": 3069
                },
                {
                  "player_name": "Martin Šubert",
                  "ranking": 3070
                },
                {
                  "player_name": "Luifer Hernández",
                  "ranking": 3071
                },
                {
                  "player_name": "Karamba Gassama",
                  "ranking": 3072
                }
              ],
              "lower": [
                {
                  "player_name": "Epameinondas Pantelakis",
                  "ranking": 3074
                },
                {
                  "player_name": "Mohamed El-Shenawy",
                  "ranking": 3075
                },
                {
                  "player_name": "Marcos Victor",
                  "ranking": 3076
                },
                {
                  "player_name": "Bart Meijers",
                  "ranking": 3077
                },
                {
                  "player_name": "Ahmed Basil",
                  "ranking": 3078
                }
              ]
            }
          }
        },
        "Hassan Al Haydos": {
          "player_id": 93953,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 10,
          "height": 174,
          "market_value": 330000,
          "stats": {
            "expected_goals": 0.0,
            "goal_rate": 0.0001,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0,
            "key_pass": 0,
            "rating": 86.3873,
            "minutes": 25,
            "total_shots": 0,
            "duels_won": 1,
            "aerial_won": 0,
            "total_pass": 4,
            "accurate_pass": 3,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 5,
            "possession_lost": 1.103,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 3,
            "total_progression": 6,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 15603918,
              "match_date": "2026-04-08",
              "home_team": "Al-Sailiya",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Al-Sadd",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 19,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 1,
                "total_pass": 24,
                "accurate_pass": 20,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15603910,
              "match_date": "2026-04-04",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Sadd",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Al-Sadd",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 10,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 5
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15690007,
              "match_date": "2026-03-13",
              "home_team": "Al-Sadd",
              "away_team": "Umm-Salal SC",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Al-Sadd",
              "opponent": "Umm-Salal SC",
              "stats": {
                "minutes": 9,
                "rating": 7.1,
                "assists": 0,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 10,
                "key_pass": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4147,
            "combined_rank_score": 554.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 719.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "projected_match_rating": 6.3873,
            "source_file": "data/player_rankings.csv",
            "player_name": "Hassan Al Haydos",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kwaku Bonsu Osei Gaucho",
                  "ranking": 4142
                },
                {
                  "player_name": "Boyd Reith",
                  "ranking": 4143
                },
                {
                  "player_name": "Andres Correa",
                  "ranking": 4144
                },
                {
                  "player_name": "Gianfranco Trasante",
                  "ranking": 4145
                },
                {
                  "player_name": "Omar El Wahsh",
                  "ranking": 4146
                }
              ],
              "lower": [
                {
                  "player_name": "Ludwig Vraa-Jensen",
                  "ranking": 4148
                },
                {
                  "player_name": "Santiago Marcel",
                  "ranking": 4149
                },
                {
                  "player_name": "Bruno Henrique",
                  "ranking": 4150
                },
                {
                  "player_name": "Déo Bassinga",
                  "ranking": 4151
                },
                {
                  "player_name": "Jerolldino Bergraaf",
                  "ranking": 4152
                }
              ]
            }
          }
        },
        "Yusuf Abdurisag": {
          "player_id": 985156,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 13,
          "height": 175,
          "market_value": 290000,
          "stats": {
            "expected_goals": 0.0,
            "goal_rate": 0.0003,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0,
            "key_pass": 0,
            "rating": 86.526,
            "minutes": 25,
            "total_shots": 1,
            "duels_won": 1,
            "aerial_won": 1,
            "total_pass": 4,
            "accurate_pass": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 9,
            "possession_lost": 2.8954,
            "dispossessed": 1.9625,
            "duels_lost": 2,
            "aerial_lost": 3,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 1,
            "ball_carries": 5,
            "total_progression": 8,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16005355,
              "match_date": "2026-04-27",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Sailiya",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Sailiya",
              "stats": {
                "minutes": 89,
                "rating": 7.3,
                "assists": 1,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 27,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15941217,
              "match_date": "2026-04-08",
              "home_team": "Al-Wakrah",
              "away_team": "Al-Gharafa",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Gharafa",
              "stats": {
                "minutes": 81,
                "rating": 6.4,
                "assists": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 20,
                "accurate_pass": 17,
                "key_pass": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15896915,
              "match_date": "2026-04-03",
              "home_team": "Qatar SC",
              "away_team": "Al-Wakrah",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Qatar SC",
              "stats": {
                "minutes": 80,
                "rating": 7.8,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 23,
                "accurate_pass": 15,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15737494,
              "match_date": "2026-03-17",
              "home_team": "Al-Rayyan",
              "away_team": "Al-Wakrah",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Al-Wakrah",
              "opponent": "Al-Rayyan",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 6,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 7,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Stars League",
              "league_id": "825",
              "league_slug": "stars-league",
              "league_country": "Qatar",
              "season_id": "77227",
              "season_name": "Stars League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 4562,
            "combined_rank_score": 552.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 707.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 6.526,
            "source_file": "data/player_rankings.csv",
            "player_name": "Yusuf Abdurisag",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Brice Negouai",
                  "ranking": 4557
                },
                {
                  "player_name": "Damjan Vuklišević",
                  "ranking": 4558
                },
                {
                  "player_name": "Oliver Zelenika",
                  "ranking": 4559
                },
                {
                  "player_name": "Marko Mladenović",
                  "ranking": 4560
                },
                {
                  "player_name": "Max Stryjek",
                  "ranking": 4561
                }
              ],
              "lower": [
                {
                  "player_name": "Adrián Colombino",
                  "ranking": 4563
                },
                {
                  "player_name": "Ali Reghba",
                  "ranking": 4564
                },
                {
                  "player_name": "Faad Sana",
                  "ranking": 4565
                },
                {
                  "player_name": "Nikola Marjanovic",
                  "ranking": 4566
                },
                {
                  "player_name": "János Hahn",
                  "ranking": 4567
                }
              ]
            }
          }
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.05,
        "expected_assists": 0.2,
        "total_shots": 11,
        "shots_on_target": 4,
        "total_passes": 471,
        "interceptions": 7,
        "tackles": 12,
        "avg_rating": 87.5,
        "possession_estimated_pct": 47.2,
        "pressing_actions_per_90": 6.1
      }
    },
    "Switzerland": {
      "formation": "4-2-3-1",
      "players": {
        "Breel Embolo": {
          "player_id": 352296,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 7,
          "height": 185,
          "market_value": 13600000,
          "stats": {
            "expected_goals": 0.1195,
            "goal_rate": 0.0006,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0079,
            "key_pass": 0,
            "rating": 83.7306,
            "minutes": 58,
            "total_shots": 2,
            "duels_won": 4,
            "aerial_won": 2,
            "total_pass": 11,
            "accurate_pass": 8,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 8,
            "accurate_opp_half_passes": 6,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 25,
            "possession_lost": 8.6625,
            "dispossessed": 2.0382,
            "duels_lost": 4,
            "aerial_lost": 1,
            "total_contest": 4,
            "won_contest": 2,
            "ball_recovery": 2,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 2,
            "assists": 0,
            "shots_off_target": 3,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 3,
            "blocks": 0,
            "big_chances_created": 1,
            "big_chances_missed": 1,
            "xgot": 0.3873,
            "offsides": 0,
            "ball_carries": 6,
            "total_progression": 37,
            "progressive_carries": 1,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.5,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.264,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Homam Al-Amin, Pedro Miguel",
            "opponent_faced": "Homam Al-Amin, Pedro Miguel",
            "antagonist_source": "attacking_duel",
            "fifa_overall": 77.0,
            "projected_goals": 0,
            "goal_probability": 0.251
          },
          "latest_10_games": [
            {
              "match_id": 14061907,
              "match_date": "2026-05-17",
              "home_team": "Olympique de Marseille",
              "away_team": "Stade Rennais",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Stade Rennais",
              "opponent": "Olympique de Marseille",
              "stats": {
                "minutes": 45,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.7833,
                "expected_assists": 0.0071,
                "total_shots": 5,
                "shots_on_target": 1,
                "shots_off_target": 3,
                "total_pass": 13,
                "accurate_pass": 11,
                "aerial_won": 3,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Ligue 1",
              "league_id": "34",
              "league_slug": "ligue-1",
              "league_country": "France",
              "season_id": "77356",
              "season_name": "Ligue 1 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14064513,
              "match_date": "2026-05-10",
              "home_team": "Stade Rennais",
              "away_team": "Paris FC",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Stade Rennais",
              "opponent": "Paris FC",
              "stats": {
                "minutes": 23,
                "rating": 7.6,
                "assists": 0,
                "expected_assists": 0.0143,
                "total_shots": 0,
                "total_pass": 5,
                "accurate_pass": 3,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Ligue 1",
              "league_id": "34",
              "league_slug": "ligue-1",
              "league_country": "France",
              "season_id": "77356",
              "season_name": "Ligue 1 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14167989,
              "match_date": "2026-05-03",
              "home_team": "Olympique Lyonnais",
              "away_team": "Stade Rennais",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Stade Rennais",
              "opponent": "Olympique Lyonnais",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.3807,
                "expected_assists": 0.0053,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 8,
                "accurate_pass": 7,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "Ligue 1",
              "league_id": "34",
              "league_slug": "ligue-1",
              "league_country": "France",
              "season_id": "77356",
              "season_name": "Ligue 1 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13233687,
              "match_date": "2025-11-18",
              "home_team": "Kosovo",
              "away_team": "Switzerland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Switzerland",
              "opponent": "Kosovo",
              "stats": {
                "minutes": 69,
                "rating": 6.8,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 12,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "World Cup Qual. UEFA",
              "league_id": "11",
              "league_slug": "world-championship-qual-uefa",
              "league_country": "Europe",
              "season_id": "69427",
              "season_name": "World Cup Qualification, UEFA 2026",
              "season_year": "2026"
            }
          ],
          "ranking": {
            "global_player_rank": 13399,
            "combined_rank_score": 741.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 140.0,
            "sofascore_rating": 7.3,
            "sofascore_appearances": 6.0,
            "fifa_rank": 1343.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "projected_match_rating": 6.7306,
            "source_file": "data/player_rankings.csv",
            "player_name": "Breel Embolo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Francisco Herrera",
                  "ranking": 13394
                },
                {
                  "player_name": "José Luis Gayà",
                  "ranking": 13395
                },
                {
                  "player_name": "Nicolò Fagioli",
                  "ranking": 13396
                },
                {
                  "player_name": "Tyrone Mings",
                  "ranking": 13397
                },
                {
                  "player_name": "Kim Jong-Seok",
                  "ranking": 13398
                }
              ],
              "lower": [
                {
                  "player_name": "Lutsharel Geertruida",
                  "ranking": 13400
                },
                {
                  "player_name": "Samú Costa",
                  "ranking": 13401
                },
                {
                  "player_name": "Pablo Maffeo",
                  "ranking": 13402
                },
                {
                  "player_name": "Kang-in Lee",
                  "ranking": 13403
                },
                {
                  "player_name": "Šime Gržan",
                  "ranking": 13404
                }
              ]
            }
          }
        },
        "Johan Manzambi": {
          "player_id": 1518931,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 9,
          "height": 182,
          "market_value": 54000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.1087,
            "assists": 0,
            "expected_goals": 0.1024,
            "rating": 74.6704,
            "minutes": 91,
            "total_pass": 37,
            "accurate_pass": 30,
            "ball_recovery": 5,
            "duels_won": 8,
            "total_shots": 2,
            "total_long_balls": 3,
            "accurate_long_balls": 3,
            "total_own_half_passes": 14,
            "accurate_own_half_passes": 14,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 17,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 62,
            "possession_lost": 15.5256,
            "dispossessed": 3.1492,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 2,
            "tackles_won": 2,
            "tackles": 2,
            "clearances": 2,
            "total_contest": 4,
            "won_contest": 2,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 4,
            "goal_rate": 1.1011,
            "goals": 1,
            "shots_on_target": 2,
            "shots_off_target": 2,
            "blocks": 1,
            "big_chances_created": 1,
            "big_chances_missed": 1,
            "xgot": 0.3964,
            "ball_carries": 18,
            "total_progression": 94,
            "progressive_carries": 3,
            "dribbles_attempted": 4,
            "dribbles_successful": 2.4,
            "crosses_attempted": 2.6,
            "duel_win_rate": 0.672,
            "pressing_faced": "LOW",
            "matchup_zone": "Right Wing vs Left Back — Flank Battle",
            "numerical_situation": "1v1",
            "opponent_defenders": "Boualem Khoukhi",
            "opponent_faced": "Boualem Khoukhi",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "fifa_overall": 67.0,
            "projected_goals": 1,
            "goal_probability": 0.4509
          },
          "latest_10_games": [
            {
              "match_id": 15632626,
              "match_date": "2026-05-20",
              "home_team": "SC Freiburg",
              "away_team": "Aston Villa",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "Aston Villa",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0203,
                "expected_assists": 0.0376,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 27,
                "accurate_pass": 20,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065555,
              "match_date": "2026-05-16",
              "home_team": "SC Freiburg",
              "away_team": "RB Leipzig",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "RB Leipzig",
              "stats": {
                "minutes": 72,
                "rating": 7.5,
                "assists": 1,
                "expected_goals": 0.065,
                "expected_assists": 0.342,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 21,
                "accurate_pass": 18,
                "key_pass": 2,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 6,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065255,
              "match_date": "2026-05-10",
              "home_team": "Hamburger SV",
              "away_team": "SC Freiburg",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "Hamburger SV",
              "stats": {
                "minutes": 58,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0122,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 26,
                "tackles": 3,
                "tackles_won": 2,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632624,
              "match_date": "2026-05-07",
              "home_team": "SC Freiburg",
              "away_team": "Sporting Braga",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "Sporting Braga",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.2795,
                "expected_assists": 0.0999,
                "total_shots": 5,
                "shots_on_target": 3,
                "shots_off_target": 2,
                "total_pass": 25,
                "accurate_pass": 24,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065240,
              "match_date": "2026-05-03",
              "home_team": "SC Freiburg",
              "away_team": "VfL Wolfsburg",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "VfL Wolfsburg",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assists": 1,
                "expected_goals": 0.3165,
                "expected_assists": 0.1503,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 42,
                "accurate_pass": 34,
                "key_pass": 1,
                "tackles": 2,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632622,
              "match_date": "2026-04-30",
              "home_team": "Sporting Braga",
              "away_team": "SC Freiburg",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "Sporting Braga",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.1482,
                "expected_assists": 0.108,
                "total_shots": 3,
                "shots_off_target": 2,
                "total_pass": 26,
                "accurate_pass": 22,
                "tackles": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632619,
              "match_date": "2026-04-16",
              "home_team": "Celta Vigo",
              "away_team": "SC Freiburg",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 71,
                "rating": 7.2,
                "assists": 0,
                "expected_goals": 0.281,
                "expected_assists": 0.0074,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 22,
                "accurate_pass": 16,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 8,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632615,
              "match_date": "2026-04-09",
              "home_team": "SC Freiburg",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 8.5,
                "assists": 1,
                "expected_goals": 0.3342,
                "expected_assists": 0.1713,
                "total_shots": 5,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 52,
                "accurate_pass": 44,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 1,
                "aerial_won": 2,
                "duels_won": 11,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631838,
              "match_date": "2026-03-19",
              "home_team": "SC Freiburg",
              "away_team": "KRC Genk",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "KRC Genk",
              "stats": {
                "minutes": 81,
                "rating": 7.3,
                "assists": 1,
                "expected_assists": 0.0304,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 29,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 2,
                "duels_won": 7,
                "ball_recovery": 11
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631827,
              "match_date": "2026-03-12",
              "home_team": "KRC Genk",
              "away_team": "SC Freiburg",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "SC Freiburg",
              "opponent": "KRC Genk",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "assists": 0,
                "expected_goals": 0.13,
                "expected_assists": 0.0389,
                "total_shots": 1,
                "total_pass": 49,
                "accurate_pass": 43,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 4,
                "aerial_won": 1,
                "duels_won": 14,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 18724,
            "combined_rank_score": 4314.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 295.0,
            "sofascore_rating": 7.0333,
            "sofascore_appearances": 6.0,
            "fifa_rank": 8334.0,
            "fifa_overall": 67.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "projected_match_rating": 7.6704,
            "source_file": "data/player_rankings.csv",
            "player_name": "Johan Manzambi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Christopher Wernitznig",
                  "ranking": 18719
                },
                {
                  "player_name": "Indrit Tuci",
                  "ranking": 18720
                },
                {
                  "player_name": "Ariel Uribe",
                  "ranking": 18721
                },
                {
                  "player_name": "Ryad Hachem",
                  "ranking": 18722
                },
                {
                  "player_name": "Mattia Viti",
                  "ranking": 18723
                }
              ],
              "lower": [
                {
                  "player_name": "Tobias Kainz",
                  "ranking": 18725
                },
                {
                  "player_name": "İsmail Köybaşı",
                  "ranking": 18726
                },
                {
                  "player_name": "Bernardo Cuesta",
                  "ranking": 18727
                },
                {
                  "player_name": "Tae Hee Nam",
                  "ranking": 18728
                },
                {
                  "player_name": "Julius Eskesen",
                  "ranking": 18729
                }
              ]
            }
          }
        },
        "Michel Aebischer": {
          "player_id": 850891,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 20,
          "height": 182,
          "market_value": 4200000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1374,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 80.5064,
            "minutes": 79,
            "total_pass": 38,
            "accurate_pass": 34,
            "ball_recovery": 4,
            "duels_won": 2,
            "total_shots": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 21,
            "total_opp_half_passes": 15,
            "accurate_opp_half_passes": 12,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 48,
            "possession_lost": 6.8998,
            "dispossessed": 0.9857,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 1,
            "clearances": 1,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 2,
            "fouls": 2,
            "fouls_drawn": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 1,
            "shots_off_target": 0,
            "blocks": 1,
            "big_chances_created": 1,
            "big_chances_missed": 1,
            "xgot": 0.0,
            "ball_carries": 11,
            "total_progression": 59,
            "progressive_carries": 0,
            "opponent_faced": "Almoez Ali",
            "matchup_zone": "Midfield lane",
            "antagonist_source": "midfield_pairing",
            "fifa_overall": 74.0,
            "projected_goals": 0,
            "goal_probability": 0.0565
          },
          "latest_10_games": [
            {
              "match_id": 13980072,
              "match_date": "2026-05-23",
              "home_team": "Lazio",
              "away_team": "Pisa",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Pisa",
              "opponent": "Lazio",
              "stats": {
                "minutes": 61,
                "rating": 7.0,
                "assists": 1,
                "expected_assists": 0.2166,
                "total_shots": 0,
                "total_pass": 39,
                "accurate_pass": 37,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13980065,
              "match_date": "2026-05-17",
              "home_team": "Pisa",
              "away_team": "SSC Napoli",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Pisa",
              "opponent": "SSC Napoli",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0902,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 18,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13233687,
              "match_date": "2025-11-18",
              "home_team": "Kosovo",
              "away_team": "Switzerland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Switzerland",
              "opponent": "Kosovo",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 52,
                "accurate_pass": 47,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "World Cup Qual. UEFA",
              "league_id": "11",
              "league_slug": "world-championship-qual-uefa",
              "league_country": "Europe",
              "season_id": "69427",
              "season_name": "World Cup Qualification, UEFA 2026",
              "season_year": "2026"
            }
          ],
          "ranking": {
            "global_player_rank": 15321,
            "combined_rank_score": 1509.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 570.0,
            "sofascore_rating": 6.775,
            "sofascore_appearances": 4.0,
            "fifa_rank": 2449.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "starter",
            "projected_match_rating": 6.5064,
            "source_file": "data/player_rankings.csv",
            "player_name": "Michel Aebischer",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Enzo Pérez",
                  "ranking": 15316
                },
                {
                  "player_name": "Michy Batshuayi",
                  "ranking": 15317
                },
                {
                  "player_name": "Charles Aránguiz",
                  "ranking": 15318
                },
                {
                  "player_name": "Daan Rots",
                  "ranking": 15319
                },
                {
                  "player_name": "Billy Gilmour",
                  "ranking": 15320
                }
              ],
              "lower": [
                {
                  "player_name": "Ayase Ueda",
                  "ranking": 15322
                },
                {
                  "player_name": "Joel Pohjanpalo",
                  "ranking": 15323
                },
                {
                  "player_name": "Marcus Ingvartsen",
                  "ranking": 15324
                },
                {
                  "player_name": "Fran Navarro",
                  "ranking": 15325
                },
                {
                  "player_name": "Barrenetxea",
                  "ranking": 15326
                }
              ]
            }
          }
        },
        "Dan Ndoye": {
          "player_id": 944327,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 11,
          "height": 184,
          "market_value": 34000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.3158,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 86.2784,
            "minutes": 83,
            "total_pass": 33,
            "accurate_pass": 26,
            "ball_recovery": 4,
            "duels_won": 5,
            "total_shots": 3,
            "total_long_balls": 2,
            "accurate_long_balls": 2,
            "total_own_half_passes": 9,
            "accurate_own_half_passes": 8,
            "total_opp_half_passes": 24,
            "accurate_opp_half_passes": 18,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 52,
            "possession_lost": 13.9576,
            "dispossessed": 2.1473,
            "duels_lost": 8,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 1,
            "tackles_won": 1,
            "tackles": 4,
            "clearances": 1,
            "total_contest": 3,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 2,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 1,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 16,
            "total_progression": 155,
            "progressive_carries": 6,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.8,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.674,
            "pressing_faced": "LOW",
            "matchup_zone": "Attacking Mid vs Single Holding Mid — Space Creator Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Ahmed Fathi",
            "opponent_faced": "Ahmed Fathi",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "fifa_overall": 79.0,
            "projected_goals": 0,
            "goal_probability": 0.054
          },
          "latest_10_games": [
            {
              "match_id": 15632620,
              "match_date": "2026-04-16",
              "home_team": "Nottingham Forest",
              "away_team": "FC Porto",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Nottingham Forest",
              "opponent": "FC Porto",
              "stats": {
                "minutes": 65,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.4713,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 25,
                "key_pass": 2,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632616,
              "match_date": "2026-04-09",
              "home_team": "FC Porto",
              "away_team": "Nottingham Forest",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Nottingham Forest",
              "opponent": "FC Porto",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "expected_goals": 0.0526,
                "expected_assists": 0.1924,
                "total_shots": 2,
                "total_pass": 31,
                "accurate_pass": 24,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 7,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 7949,
            "combined_rank_score": 433.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 71.0,
            "sofascore_rating": 7.54,
            "sofascore_appearances": 5.0,
            "fifa_rank": 796.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "projected_match_rating": 7.2784,
            "source_file": "data/player_rankings.csv",
            "player_name": "Dan Ndoye",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Kentaro Kakoi",
                  "ranking": 7944
                },
                {
                  "player_name": "Rolando Rodriguez",
                  "ranking": 7945
                },
                {
                  "player_name": "Soon-hyeok Jang",
                  "ranking": 7946
                },
                {
                  "player_name": "David Almengor",
                  "ranking": 7947
                },
                {
                  "player_name": "Leonel Triana",
                  "ranking": 7948
                }
              ],
              "lower": [
                {
                  "player_name": "Benjamin Büchel",
                  "ranking": 7950
                },
                {
                  "player_name": "Juan Angel Neira",
                  "ranking": 7951
                },
                {
                  "player_name": "Sean Melvin",
                  "ranking": 7952
                },
                {
                  "player_name": "Martin Černek",
                  "ranking": 7953
                },
                {
                  "player_name": "Laco Takacs",
                  "ranking": 7954
                }
              ]
            }
          }
        },
        "Granit Xhaka": {
          "player_id": 117777,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 10,
          "height": 185,
          "market_value": 10600000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.1288,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 92.447,
            "minutes": 87,
            "total_pass": 66,
            "accurate_pass": 57,
            "ball_recovery": 7,
            "duels_won": 4,
            "total_shots": 2,
            "total_long_balls": 7,
            "accurate_long_balls": 4,
            "total_own_half_passes": 26,
            "accurate_own_half_passes": 24,
            "total_opp_half_passes": 40,
            "accurate_opp_half_passes": 33,
            "crosses_total": 4,
            "crosses_accurate": 1,
            "touches": 78,
            "possession_lost": 13.115,
            "dispossessed": 2.0177,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 2,
            "tackles_won": 2,
            "tackles": 2,
            "clearances": 2,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 2,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 1,
            "blocks": 1,
            "big_chances_created": 1,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 24,
            "total_progression": 80,
            "progressive_carries": 2,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.5,
            "crosses_attempted": 2.0,
            "duel_win_rate": 0.564,
            "pressing_faced": "LOW",
            "matchup_zone": "Left Wing vs Right Back — Flank Battle",
            "numerical_situation": "1v1",
            "opponent_defenders": "Ayoub Al Oui",
            "opponent_faced": "Ayoub Al Oui",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "fifa_overall": 85.0,
            "projected_goals": 0,
            "goal_probability": 0.0365
          },
          "latest_10_games": [
            {
              "match_id": 14023966,
              "match_date": "2026-05-24",
              "home_team": "Sunderland",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Sunderland",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 90,
                "rating": 7.8,
                "assists": 0,
                "expected_assists": 0.2747,
                "total_shots": 0,
                "total_pass": 52,
                "accurate_pass": 45,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14023955,
              "match_date": "2026-05-17",
              "home_team": "Everton",
              "away_team": "Sunderland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Sunderland",
              "opponent": "Everton",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0208,
                "total_shots": 0,
                "total_pass": 71,
                "accurate_pass": 62,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14023938,
              "match_date": "2026-05-09",
              "home_team": "Sunderland",
              "away_team": "Manchester United",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Sunderland",
              "opponent": "Manchester United",
              "stats": {
                "minutes": 90,
                "rating": 8.8,
                "assists": 0,
                "expected_goals": 0.0266,
                "expected_assists": 0.2702,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 85,
                "accurate_pass": 71,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 2,
                "aerial_won": 2,
                "duels_won": 8,
                "ball_recovery": 11
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13233687,
              "match_date": "2025-11-18",
              "home_team": "Kosovo",
              "away_team": "Switzerland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Switzerland",
              "opponent": "Kosovo",
              "stats": {
                "minutes": 76,
                "rating": 6.8,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 52,
                "accurate_pass": 47,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "World Cup Qual. UEFA",
              "league_id": "11",
              "league_slug": "world-championship-qual-uefa",
              "league_country": "Europe",
              "season_id": "69427",
              "season_name": "World Cup Qualification, UEFA 2026",
              "season_year": "2026"
            }
          ],
          "ranking": {
            "global_player_rank": 102,
            "combined_rank_score": 100.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 56.0,
            "sofascore_rating": 7.6167,
            "sofascore_appearances": 6.0,
            "fifa_rank": 144.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "starter",
            "projected_match_rating": 7.447,
            "source_file": "data/player_rankings.csv",
            "player_name": "Granit Xhaka",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "David Raya",
                  "ranking": 97
                },
                {
                  "player_name": "Jean Meneses",
                  "ranking": 98
                },
                {
                  "player_name": "Vasilije Kostov",
                  "ranking": 99
                },
                {
                  "player_name": "Veljko Milosavljević",
                  "ranking": 100
                },
                {
                  "player_name": "Jaylan Hankins",
                  "ranking": 101
                }
              ],
              "lower": [
                {
                  "player_name": "Alexis Serna",
                  "ranking": 103
                },
                {
                  "player_name": "Matías Palavecino",
                  "ranking": 104
                },
                {
                  "player_name": "Désiré Doué",
                  "ranking": 105
                },
                {
                  "player_name": "Vitinha",
                  "ranking": 106
                },
                {
                  "player_name": "Bruno Henrique",
                  "ranking": 107
                }
              ]
            }
          }
        },
        "Remo Freuler": {
          "player_id": 115516,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 181,
          "market_value": 3100000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0642,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 87.8522,
            "minutes": 77,
            "total_pass": 41,
            "accurate_pass": 38,
            "ball_recovery": 3,
            "duels_won": 3,
            "total_shots": 1,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 20,
            "accurate_own_half_passes": 19,
            "total_opp_half_passes": 21,
            "accurate_opp_half_passes": 19,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 49,
            "possession_lost": 4.0933,
            "dispossessed": 0.9816,
            "duels_lost": 2,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 2,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 2,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 1,
            "blocks": 1,
            "big_chances_created": 1,
            "big_chances_missed": 1,
            "xgot": 0.0,
            "ball_carries": 14,
            "total_progression": 34,
            "progressive_carries": 0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.411,
            "pressing_faced": "LOW",
            "matchup_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Edmilson Junior",
            "opponent_faced": "Edmilson Junior",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "fifa_overall": 81.0,
            "projected_goals": 0,
            "goal_probability": 0.035
          },
          "latest_10_games": [
            {
              "match_id": 13980079,
              "match_date": "2026-05-23",
              "home_team": "Bologna",
              "away_team": "Inter",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Bologna",
              "opponent": "Inter",
              "stats": {
                "minutes": 66,
                "rating": 7.1,
                "assists": 0,
                "expected_goals": 0.4727,
                "expected_assists": 0.1467,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 31,
                "accurate_pass": 31,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13980058,
              "match_date": "2026-05-17",
              "home_team": "Atalanta",
              "away_team": "Bologna",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Bologna",
              "opponent": "Atalanta",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0191,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 40,
                "interceptions": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13980089,
              "match_date": "2026-05-11",
              "home_team": "SSC Napoli",
              "away_team": "Bologna",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Bologna",
              "opponent": "SSC Napoli",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assists": 0,
                "expected_assists": 0.0156,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 51,
                "interceptions": 4,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632621,
              "match_date": "2026-04-16",
              "home_team": "Aston Villa",
              "away_team": "Bologna",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Bologna",
              "opponent": "Aston Villa",
              "stats": {
                "minutes": 45,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0079,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 14,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632617,
              "match_date": "2026-04-09",
              "home_team": "Bologna",
              "away_team": "Aston Villa",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Bologna",
              "opponent": "Aston Villa",
              "stats": {
                "minutes": 89,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0253,
                "total_shots": 0,
                "total_pass": 73,
                "accurate_pass": 65,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631828,
              "match_date": "2026-03-12",
              "home_team": "Bologna",
              "away_team": "AS Roma",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Bologna",
              "opponent": "AS Roma",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.0118,
                "expected_assists": 0.012,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 33,
                "accurate_pass": 29,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 1722,
            "combined_rank_score": 284.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 41.0,
            "sofascore_rating": 7.75,
            "sofascore_appearances": 4.0,
            "fifa_rank": 527.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "starter",
            "projected_match_rating": 6.8522,
            "source_file": "data/player_rankings.csv",
            "player_name": "Remo Freuler",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Emiliano Clavijo",
                  "ranking": 1717
                },
                {
                  "player_name": "Alex Meret",
                  "ranking": 1718
                },
                {
                  "player_name": "Gabriel Girotto",
                  "ranking": 1719
                },
                {
                  "player_name": "Matheus Belém",
                  "ranking": 1720
                },
                {
                  "player_name": "Ewil Murillo Renteria",
                  "ranking": 1721
                }
              ],
              "lower": [
                {
                  "player_name": "Stephen Chinedu",
                  "ranking": 1723
                },
                {
                  "player_name": "Zoran Marušić",
                  "ranking": 1724
                },
                {
                  "player_name": "Mihály Kata",
                  "ranking": 1725
                },
                {
                  "player_name": "Abdulrahman Alobud",
                  "ranking": 1726
                },
                {
                  "player_name": "Shinnosuke Hatanaka",
                  "ranking": 1727
                }
              ]
            }
          }
        },
        "Manuel Akanji": {
          "player_id": 383560,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 5,
          "height": 187,
          "market_value": 15500000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 4,
            "aerial_won": 1,
            "rating": 89.0531,
            "minutes": 92,
            "total_pass": 80,
            "accurate_pass": 74,
            "duels_won": 1,
            "total_long_balls": 7,
            "accurate_long_balls": 6,
            "total_own_half_passes": 56,
            "accurate_own_half_passes": 52,
            "total_opp_half_passes": 24,
            "accurate_opp_half_passes": 22,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 87,
            "possession_lost": 6.1523,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 0,
            "blocks": 1,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "key_pass": 0,
            "opponent_faced": "Jassem Gaber Abdulsallam",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "fifa_overall": 82.0,
            "projected_goals": 0,
            "goal_probability": 0.0351
          },
          "latest_10_games": [
            {
              "match_id": 13233687,
              "match_date": "2025-11-18",
              "home_team": "Kosovo",
              "away_team": "Switzerland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Switzerland",
              "opponent": "Kosovo",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 78,
                "accurate_pass": 72,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "World Cup Qual. UEFA",
              "league_id": "11",
              "league_slug": "world-championship-qual-uefa",
              "league_country": "Europe",
              "season_id": "69427",
              "season_name": "World Cup Qualification, UEFA 2026",
              "season_year": "2026"
            }
          ],
          "ranking": {
            "global_player_rank": 1568,
            "combined_rank_score": 270.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 133.0,
            "sofascore_rating": 7.3167,
            "sofascore_appearances": 6.0,
            "fifa_rank": 408.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "projected_match_rating": 7.0531,
            "source_file": "data/player_rankings.csv",
            "player_name": "Manuel Akanji",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Ritsu Doan",
                  "ranking": 1563
                },
                {
                  "player_name": "Elijah Gift",
                  "ranking": 1564
                },
                {
                  "player_name": "Diego Borges",
                  "ranking": 1565
                },
                {
                  "player_name": "Vincent Müller",
                  "ranking": 1566
                },
                {
                  "player_name": "Rolando Silva",
                  "ranking": 1567
                }
              ],
              "lower": [
                {
                  "player_name": "Gerónimo Rulli",
                  "ranking": 1569
                },
                {
                  "player_name": "Utkir Yusupov",
                  "ranking": 1570
                },
                {
                  "player_name": "Akmal Mozgovoy",
                  "ranking": 1571
                },
                {
                  "player_name": "Mohammad Abu Fani",
                  "ranking": 1572
                },
                {
                  "player_name": "Carlos Cuesta",
                  "ranking": 1573
                }
              ]
            }
          }
        },
        "Nico Elvedi": {
          "player_id": 282229,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 4,
          "height": 188,
          "market_value": 7300000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 0,
            "rating": 84.0071,
            "minutes": 90,
            "total_pass": 49,
            "accurate_pass": 45,
            "duels_won": 4,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 35,
            "accurate_own_half_passes": 33,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 12,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 63,
            "possession_lost": 4.6563,
            "dispossessed": 0.0,
            "duels_lost": 4,
            "aerial_lost": 2,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 1,
            "fouls": 1,
            "fouls_drawn": 1,
            "blocks": 2,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 1,
            "expected_goals": 0.0598,
            "expected_assists": 0.0199,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 1,
            "xgot": 0.0,
            "ball_carries": 15,
            "total_progression": 66,
            "progressive_carries": 2,
            "key_pass": 2,
            "opponent_faced": "Edmilson Junior",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "fifa_overall": 77.0,
            "projected_goals": 0,
            "goal_probability": 0.0466
          },
          "latest_10_games": [
            {
              "match_id": 14065559,
              "match_date": "2026-05-16",
              "home_team": "Borussia M'gladbach",
              "away_team": "TSG Hoffenheim",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Borussia M'gladbach",
              "opponent": "TSG Hoffenheim",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "assists": 2,
                "expected_goals": 0.0593,
                "expected_assists": 0.0316,
                "total_shots": 1,
                "total_pass": 40,
                "accurate_pass": 36,
                "key_pass": 2,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 12,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065243,
              "match_date": "2026-05-03",
              "home_team": "Borussia M'gladbach",
              "away_team": "Borussia Dortmund",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Borussia M'gladbach",
              "opponent": "Borussia Dortmund",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0061,
                "total_shots": 0,
                "total_pass": 53,
                "accurate_pass": 48,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13233687,
              "match_date": "2025-11-18",
              "home_team": "Kosovo",
              "away_team": "Switzerland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Switzerland",
              "opponent": "Kosovo",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 53,
                "accurate_pass": 50,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "World Cup Qual. UEFA",
              "league_id": "11",
              "league_slug": "world-championship-qual-uefa",
              "league_country": "Europe",
              "season_id": "69427",
              "season_name": "World Cup Qualification, UEFA 2026",
              "season_year": "2026"
            }
          ],
          "ranking": {
            "global_player_rank": 13817,
            "combined_rank_score": 828.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 119.0,
            "sofascore_rating": 7.3667,
            "sofascore_appearances": 6.0,
            "fifa_rank": 1538.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "starter",
            "projected_match_rating": 7.0071,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nico Elvedi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Hwang In-beom",
                  "ranking": 13812
                },
                {
                  "player_name": "Philipp Köhn",
                  "ranking": 13813
                },
                {
                  "player_name": "Pepelu",
                  "ranking": 13814
                },
                {
                  "player_name": "Abdessamad Ezzalzouli",
                  "ranking": 13815
                },
                {
                  "player_name": "Javier Rojas",
                  "ranking": 13816
                }
              ],
              "lower": [
                {
                  "player_name": "Nicolas Seiwald",
                  "ranking": 13818
                },
                {
                  "player_name": "Davy Klaassen",
                  "ranking": 13819
                },
                {
                  "player_name": "Wilfried Zaha",
                  "ranking": 13820
                },
                {
                  "player_name": "Emiliano Ramos",
                  "ranking": 13821
                },
                {
                  "player_name": "Ross Barkley",
                  "ranking": 13822
                }
              ]
            }
          }
        },
        "Silvan Widmer": {
          "player_id": 157377,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 3,
          "height": 182,
          "market_value": 730000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.3306,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 78.9804,
            "minutes": 71,
            "total_pass": 31,
            "accurate_pass": 28,
            "ball_recovery": 2,
            "duels_won": 3,
            "total_shots": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 16,
            "accurate_own_half_passes": 15,
            "total_opp_half_passes": 16,
            "accurate_opp_half_passes": 14,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 51,
            "possession_lost": 6.8686,
            "dispossessed": 0.9812,
            "duels_lost": 1,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 2,
            "tackles_won": 1,
            "tackles": 2,
            "clearances": 2,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 1,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 9,
            "total_progression": 30,
            "progressive_carries": 1,
            "opponent_faced": "Akram Afif",
            "matchup_zone": "Midfield lane",
            "antagonist_source": "midfield_pairing",
            "fifa_overall": 72.0,
            "projected_goals": 0,
            "goal_probability": 0.0165
          },
          "latest_10_games": [
            {
              "match_id": 14065562,
              "match_date": "2026-05-16",
              "home_team": "1. FC Heidenheim",
              "away_team": "1. FSV Mainz 05",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "1. FSV Mainz 05",
              "opponent": "1. FC Heidenheim",
              "stats": {
                "minutes": 68,
                "rating": 7.2,
                "assists": 0,
                "expected_assists": 0.067,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 20,
                "tackles": 3,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065246,
              "match_date": "2026-05-03",
              "home_team": "FC St. Pauli",
              "away_team": "1. FSV Mainz 05",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "1. FSV Mainz 05",
              "opponent": "FC St. Pauli",
              "stats": {
                "minutes": 77,
                "rating": 7.4,
                "assists": 1,
                "expected_assists": 0.6104,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 38,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13233687,
              "match_date": "2025-11-18",
              "home_team": "Kosovo",
              "away_team": "Switzerland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Switzerland",
              "opponent": "Kosovo",
              "stats": {
                "minutes": 75,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 32,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "World Cup Qual. UEFA",
              "league_id": "11",
              "league_slug": "world-championship-qual-uefa",
              "league_country": "Europe",
              "season_id": "69427",
              "season_name": "World Cup Qualification, UEFA 2026",
              "season_year": "2026"
            }
          ],
          "ranking": {
            "global_player_rank": 15935,
            "combined_rank_score": 2000.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 358.0,
            "sofascore_rating": 6.9667,
            "sofascore_appearances": 6.0,
            "fifa_rank": 3642.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "starter",
            "projected_match_rating": 6.9804,
            "source_file": "data/player_rankings.csv",
            "player_name": "Silvan Widmer",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Sergio Camello",
                  "ranking": 15930
                },
                {
                  "player_name": "Alexander Domínguez",
                  "ranking": 15931
                },
                {
                  "player_name": "Fernando Zuqui",
                  "ranking": 15932
                },
                {
                  "player_name": "Carlos Gonzalez",
                  "ranking": 15933
                },
                {
                  "player_name": "Adama Boiro",
                  "ranking": 15934
                }
              ],
              "lower": [
                {
                  "player_name": "Luís Maximiano",
                  "ranking": 15936
                },
                {
                  "player_name": "Facundo Mallo",
                  "ranking": 15937
                },
                {
                  "player_name": "Miha Zajc",
                  "ranking": 15938
                },
                {
                  "player_name": "Nacho Vidal",
                  "ranking": 15939
                },
                {
                  "player_name": "Lucas Gourna-Douath",
                  "ranking": 15940
                }
              ]
            }
          }
        },
        "Gregor Kobel": {
          "player_id": 556866,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 193,
          "market_value": 41000000,
          "stats": {
            "saves": 2,
            "goals_prevented": 0.6491,
            "rating": 93.6483,
            "minutes": 95,
            "total_pass": 39,
            "accurate_pass": 30,
            "total_long_balls": 18,
            "accurate_long_balls": 8,
            "touches": 49,
            "clearances": 1,
            "ball_recovery": 9,
            "high_claims": 1,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 2,
            "sweeper_accurate": 2,
            "saves_inside_box": 2,
            "possession_lost": 9.7721,
            "duels_won": 0,
            "duels_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 28,
            "accurate_own_half_passes": 26,
            "expected_saves": 0.31,
            "high_pressure_saves": 0.12,
            "shots_faced": 0.7,
            "opponent_faced": "Edmilson Junior, Ahmed Fathi",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "fifa_overall": 86.0,
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0
          },
          "latest_10_games": [
            {
              "match_id": 14065561,
              "match_date": "2026-05-16",
              "home_team": "SV Werder Bremen",
              "away_team": "Borussia Dortmund",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Borussia Dortmund",
              "opponent": "SV Werder Bremen",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assists": 0,
                "expected_assists": 0.0013,
                "total_shots": 0,
                "total_pass": 33,
                "accurate_pass": 25,
                "clearances": 1,
                "ball_recovery": 11,
                "saves": 3,
                "goals_prevented": 0.1778
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065245,
              "match_date": "2026-05-08",
              "home_team": "Borussia Dortmund",
              "away_team": "Eintracht Frankfurt",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Borussia Dortmund",
              "opponent": "Eintracht Frankfurt",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0028,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 29,
                "clearances": 1,
                "ball_recovery": 4,
                "saves": 2,
                "goals_prevented": -0.0674
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065243,
              "match_date": "2026-05-03",
              "home_team": "Borussia M'gladbach",
              "away_team": "Borussia Dortmund",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Borussia Dortmund",
              "opponent": "Borussia M'gladbach",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assists": 0,
                "expected_assists": 0.0022,
                "total_shots": 0,
                "total_pass": 33,
                "accurate_pass": 20,
                "ball_recovery": 7,
                "saves": 3,
                "goals_prevented": 0.5014
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065228,
              "match_date": "2026-04-26",
              "home_team": "Borussia Dortmund",
              "away_team": "SC Freiburg",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Borussia Dortmund",
              "opponent": "SC Freiburg",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "assists": 0,
                "expected_assists": 0.0051,
                "total_shots": 0,
                "total_pass": 43,
                "accurate_pass": 33,
                "ball_recovery": 10,
                "saves": 4,
                "goals_prevented": 1.2582
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13233687,
              "match_date": "2025-11-18",
              "home_team": "Kosovo",
              "away_team": "Switzerland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Switzerland",
              "opponent": "Kosovo",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 40,
                "accurate_pass": 29,
                "clearances": 1,
                "ball_recovery": 10,
                "saves": 3
              },
              "has_player_stats": true,
              "league_name": "World Cup Qual. UEFA",
              "league_id": "11",
              "league_slug": "world-championship-qual-uefa",
              "league_country": "Europe",
              "season_id": "69427",
              "season_name": "World Cup Qualification, UEFA 2026",
              "season_year": "2026"
            }
          ],
          "ranking": {
            "global_player_rank": 1785,
            "combined_rank_score": 288.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 474.0,
            "sofascore_rating": 6.85,
            "sofascore_appearances": 6.0,
            "fifa_rank": 103.0,
            "fifa_overall": 86.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "projected_match_rating": 7.6483,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gregor Kobel",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Youssouf Fofana",
                  "ranking": 1780
                },
                {
                  "player_name": "Adam Kadlec",
                  "ranking": 1781
                },
                {
                  "player_name": "Juan Fedorco",
                  "ranking": 1782
                },
                {
                  "player_name": "Andrija Majdevac",
                  "ranking": 1783
                },
                {
                  "player_name": "Daiya Maekawa",
                  "ranking": 1784
                }
              ],
              "lower": [
                {
                  "player_name": "Carlos Airala",
                  "ranking": 1786
                },
                {
                  "player_name": "Teun Wilke",
                  "ranking": 1787
                },
                {
                  "player_name": "Rafael Tolói",
                  "ranking": 1788
                },
                {
                  "player_name": "Felipe Negrucci",
                  "ranking": 1789
                },
                {
                  "player_name": "Tedi Cara",
                  "ranking": 1790
                }
              ]
            }
          }
        },
        "Ricardo Rodríguez": {
          "player_id": 67769,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 13,
          "height": 182,
          "market_value": 1600000,
          "stats": {
            "interceptions": 0,
            "tackles": 1,
            "tackles_won": 0,
            "clearances": 2,
            "aerial_won": 1,
            "rating": 80.2826,
            "minutes": 83,
            "total_pass": 41,
            "accurate_pass": 35,
            "duels_won": 3,
            "total_long_balls": 3,
            "accurate_long_balls": 1,
            "total_own_half_passes": 22,
            "accurate_own_half_passes": 19,
            "total_opp_half_passes": 18,
            "accurate_opp_half_passes": 15,
            "crosses_total": 1,
            "crosses_accurate": 1,
            "touches": 52,
            "possession_lost": 7.1924,
            "dispossessed": 0.9812,
            "duels_lost": 3,
            "aerial_lost": 2,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 3,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 1,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0294,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 13,
            "total_progression": 15,
            "progressive_carries": 0,
            "key_pass": 0,
            "opponent_faced": "Karim Boudiaf",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "fifa_overall": 74.0,
            "projected_goals": 0,
            "goal_probability": 0.0178
          },
          "latest_10_games": [
            {
              "match_id": 14083710,
              "match_date": "2026-05-23",
              "home_team": "Real Betis",
              "away_team": "Levante UD",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Betis",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0034,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 36,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "77559",
              "season_name": "LaLiga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632618,
              "match_date": "2026-04-16",
              "home_team": "Real Betis",
              "away_team": "Sporting Braga",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Betis",
              "opponent": "Sporting Braga",
              "stats": {
                "minutes": 78,
                "rating": 5.8,
                "assists": 0,
                "expected_assists": 0.0762,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 27,
                "clearances": 5,
                "aerial_won": 3,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15632614,
              "match_date": "2026-04-08",
              "home_team": "Sporting Braga",
              "away_team": "Real Betis",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Betis",
              "opponent": "Sporting Braga",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0082,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 24,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631841,
              "match_date": "2026-03-19",
              "home_team": "Real Betis",
              "away_team": "Panathinaikos FC",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Real Betis",
              "opponent": "Panathinaikos FC",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assists": 0,
                "expected_assists": 0.0593,
                "total_shots": 0,
                "total_pass": 51,
                "accurate_pass": 46,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631833,
              "match_date": "2026-03-12",
              "home_team": "Panathinaikos FC",
              "away_team": "Real Betis",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Real Betis",
              "opponent": "Panathinaikos FC",
              "stats": {
                "minutes": 68,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0182,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 31,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13233687,
              "match_date": "2025-11-18",
              "home_team": "Kosovo",
              "away_team": "Switzerland",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Switzerland",
              "opponent": "Kosovo",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 49,
                "tackles": 1,
                "interceptions": 3,
                "clearances": 2,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "World Cup Qual. UEFA",
              "league_id": "11",
              "league_slug": "world-championship-qual-uefa",
              "league_country": "Europe",
              "season_id": "69427",
              "season_name": "World Cup Qualification, UEFA 2026",
              "season_year": "2026"
            }
          ],
          "ranking": {
            "global_player_rank": 15231,
            "combined_rank_score": 1433.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 441.0,
            "sofascore_rating": 6.8833,
            "sofascore_appearances": 6.0,
            "fifa_rank": 2425.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "starter",
            "projected_match_rating": 6.2826,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ricardo Rodríguez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Dominic Calvert-Lewin",
                  "ranking": 15226
                },
                {
                  "player_name": "Jan Schöppner",
                  "ranking": 15227
                },
                {
                  "player_name": "Tijjani Noslin",
                  "ranking": 15228
                },
                {
                  "player_name": "Perr Schuurs",
                  "ranking": 15229
                },
                {
                  "player_name": "Daniel Fernandes",
                  "ranking": 15230
                }
              ],
              "lower": [
                {
                  "player_name": "Esteban Lepaul",
                  "ranking": 15232
                },
                {
                  "player_name": "Sheraldo Becker",
                  "ranking": 15233
                },
                {
                  "player_name": "Václav Jemelka",
                  "ranking": 15234
                },
                {
                  "player_name": "Ignacio Fernandez",
                  "ranking": 15235
                },
                {
                  "player_name": "Joshua King",
                  "ranking": 15236
                }
              ]
            }
          }
        }
      },
      "bench_players": {
        "Marvin Keller": {
          "player_id": 1005744,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 1,
          "height": 187,
          "market_value": 6800000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0316,
            "rating": 79.139,
            "minutes": 5,
            "total_pass": 2,
            "accurate_pass": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0506,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.4151,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.117,
            "bench_expected_minutes": 4.58,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 15916406,
              "match_date": "2026-05-17",
              "home_team": "BSC Young Boys",
              "away_team": "FC Sion",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "FC Sion",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0059,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 17,
                "clearances": 1,
                "ball_recovery": 8,
                "saves": 5,
                "goals_prevented": 0.2419
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15916399,
              "match_date": "2026-05-14",
              "home_team": "FC Thun",
              "away_team": "BSC Young Boys",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "FC Thun",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 23,
                "ball_recovery": 8,
                "saves": 3,
                "goals_prevented": -0.6595
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15916393,
              "match_date": "2026-05-10",
              "home_team": "BSC Young Boys",
              "away_team": "Basel",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "Basel",
              "stats": {
                "minutes": 90,
                "rating": 9.7,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 25,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 6,
                "goals_prevented": 1.9479
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15916390,
              "match_date": "2026-05-03",
              "home_team": "FC Lugano",
              "away_team": "BSC Young Boys",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "FC Lugano",
              "stats": {
                "minutes": 90,
                "rating": 9.6,
                "assists": 0,
                "expected_assists": 0.0013,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 22,
                "duels_won": 1,
                "ball_recovery": 10,
                "saves": 6,
                "goals_prevented": 1.4898
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15916388,
              "match_date": "2026-04-26",
              "home_team": "BSC Young Boys",
              "away_team": "FC St. Gallen 1879",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "FC St. Gallen 1879",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0036,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 31,
                "ball_recovery": 11,
                "saves": 3,
                "goals_prevented": -1.0917
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 15988,
            "combined_rank_score": 2047.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 3891.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 7.139,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marvin Keller",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Pablo Marín",
                  "ranking": 15983
                },
                {
                  "player_name": "Fernando",
                  "ranking": 15984
                },
                {
                  "player_name": "Jakub Markovič",
                  "ranking": 15985
                },
                {
                  "player_name": "Diego Luna",
                  "ranking": 15986
                },
                {
                  "player_name": "Ryan Kent",
                  "ranking": 15987
                }
              ],
              "lower": [
                {
                  "player_name": "Gabriel Moscardo",
                  "ranking": 15989
                },
                {
                  "player_name": "Walter Bou",
                  "ranking": 15990
                },
                {
                  "player_name": "Karim Onisiwo",
                  "ranking": 15991
                },
                {
                  "player_name": "Mats Deijl",
                  "ranking": 15992
                },
                {
                  "player_name": "Jairo Concha",
                  "ranking": 15993
                }
              ]
            }
          }
        },
        "Luca Jaquez": {
          "player_id": 1127823,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 187,
          "market_value": 10700000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 75.6982,
            "minutes": 14,
            "total_pass": 4,
            "accurate_pass": 3,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 5,
            "possession_lost": 0.8207,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0047,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 5,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.316,
            "bench_expected_minutes": 13.94,
            "fifa_overall": 69.0
          },
          "latest_10_games": [
            {
              "match_id": 14065560,
              "match_date": "2026-05-16",
              "home_team": "Eintracht Frankfurt",
              "away_team": "VfB Stuttgart",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "VfB Stuttgart",
              "opponent": "Eintracht Frankfurt",
              "stats": {
                "minutes": 17,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 3,
                "clearances": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065248,
              "match_date": "2026-05-09",
              "home_team": "VfB Stuttgart",
              "away_team": "Bayer 04 Leverkusen",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "VfB Stuttgart",
              "opponent": "Bayer 04 Leverkusen",
              "stats": {
                "minutes": 12,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0068,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065244,
              "match_date": "2026-05-02",
              "home_team": "TSG Hoffenheim",
              "away_team": "VfB Stuttgart",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "VfB Stuttgart",
              "opponent": "TSG Hoffenheim",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0118,
                "total_shots": 0,
                "total_pass": 62,
                "accurate_pass": 53,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631840,
              "match_date": "2026-03-19",
              "home_team": "FC Porto",
              "away_team": "VfB Stuttgart",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "VfB Stuttgart",
              "opponent": "FC Porto",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assists": 0,
                "expected_assists": 0.1416,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 36,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631832,
              "match_date": "2026-03-12",
              "home_team": "VfB Stuttgart",
              "away_team": "FC Porto",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "VfB Stuttgart",
              "opponent": "FC Porto",
              "stats": {
                "minutes": 20,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.0042,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 15,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 18003,
            "combined_rank_score": 3676.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 533.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 6820.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "substitute",
            "projected_match_rating": 6.6982,
            "source_file": "data/player_rankings.csv",
            "player_name": "Luca Jaquez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Elías Cabrera",
                  "ranking": 17998
                },
                {
                  "player_name": "Louis Oppie",
                  "ranking": 17999
                },
                {
                  "player_name": "César Haydar",
                  "ranking": 18000
                },
                {
                  "player_name": "Novatus Miroshi",
                  "ranking": 18001
                },
                {
                  "player_name": "Matheus Araújo",
                  "ranking": 18002
                }
              ],
              "lower": [
                {
                  "player_name": "Pablo Rodríguez",
                  "ranking": 18004
                },
                {
                  "player_name": "Indiana Vassilev",
                  "ranking": 18005
                },
                {
                  "player_name": "Bledian Krasniqi",
                  "ranking": 18006
                },
                {
                  "player_name": "Viktor Claesson",
                  "ranking": 18007
                },
                {
                  "player_name": "Callum O'Dowda",
                  "ranking": 18008
                }
              ]
            }
          }
        },
        "Aurèle Amenda": {
          "player_id": 999276,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 5,
          "height": 194,
          "market_value": 8199999,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "rating": 77.4677,
            "minutes": 14,
            "total_pass": 9,
            "accurate_pass": 8,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 1.9468,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 3,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0031,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 10,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.31,
            "bench_expected_minutes": 13.82,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 14065560,
              "match_date": "2026-05-16",
              "home_team": "Eintracht Frankfurt",
              "away_team": "VfB Stuttgart",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Eintracht Frankfurt",
              "opponent": "VfB Stuttgart",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0227,
                "total_shots": 0,
                "total_pass": 58,
                "accurate_pass": 47,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065245,
              "match_date": "2026-05-08",
              "home_team": "Borussia Dortmund",
              "away_team": "Eintracht Frankfurt",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Eintracht Frankfurt",
              "opponent": "Borussia Dortmund",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assists": 0,
                "expected_assists": 0.0149,
                "total_shots": 0,
                "total_pass": 58,
                "accurate_pass": 47,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065239,
              "match_date": "2026-05-02",
              "home_team": "Eintracht Frankfurt",
              "away_team": "Hamburger SV",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Eintracht Frankfurt",
              "opponent": "Hamburger SV",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "total_pass": 68,
                "accurate_pass": 59,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 5,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 16730,
            "combined_rank_score": 2635.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 5081.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.4677,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aurèle Amenda",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Raul Gustavo",
                  "ranking": 16725
                },
                {
                  "player_name": "Amine El Ouazzani",
                  "ranking": 16726
                },
                {
                  "player_name": "Facundo Zabala",
                  "ranking": 16727
                },
                {
                  "player_name": "Sambou Soumano",
                  "ranking": 16728
                },
                {
                  "player_name": "Lautaro Giaccone",
                  "ranking": 16729
                }
              ],
              "lower": [
                {
                  "player_name": "Florian Tardieu",
                  "ranking": 16731
                },
                {
                  "player_name": "Ahmed Sharahili",
                  "ranking": 16732
                },
                {
                  "player_name": "Sebastián Pérez",
                  "ranking": 16733
                },
                {
                  "player_name": "Ahmetcan Kaplan",
                  "ranking": 16734
                },
                {
                  "player_name": "Andrea Compagno",
                  "ranking": 16735
                }
              ]
            }
          }
        },
        "Ardon Jashari": {
          "player_id": 1034082,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 30,
          "height": 180,
          "market_value": 29000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0146,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 84.0792,
            "minutes": 23,
            "total_pass": 7,
            "accurate_pass": 7,
            "ball_recovery": 1,
            "duels_won": 1,
            "total_shots": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 1.7697,
            "dispossessed": 2.126,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 1,
            "total_contest": 0,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 7,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.548,
            "bench_expected_minutes": 23.05,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 13980071,
              "match_date": "2026-05-24",
              "home_team": "AC Milan",
              "away_team": "Cagliari",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "AC Milan",
              "opponent": "Cagliari",
              "stats": {
                "minutes": 62,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.021,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 25,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13980068,
              "match_date": "2026-05-17",
              "home_team": "Genoa",
              "away_team": "AC Milan",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "AC Milan",
              "opponent": "Genoa",
              "stats": {
                "minutes": 85,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0511,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 13184,
            "combined_rank_score": 681.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 1284.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "substitute",
            "projected_match_rating": 7.0792,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ardon Jashari",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lukas Klostermann",
                  "ranking": 13179
                },
                {
                  "player_name": "Calebe Gonçalves",
                  "ranking": 13180
                },
                {
                  "player_name": "Georgiy Sudakov",
                  "ranking": 13181
                },
                {
                  "player_name": "Georginio Rutter",
                  "ranking": 13182
                },
                {
                  "player_name": "Luis Suárez",
                  "ranking": 13183
                }
              ],
              "lower": [
                {
                  "player_name": "Nahuel Molina",
                  "ranking": 13185
                },
                {
                  "player_name": "Destiny Udogie",
                  "ranking": 13186
                },
                {
                  "player_name": "Adam Marušić",
                  "ranking": 13187
                },
                {
                  "player_name": "Jorge Herrando",
                  "ranking": 13188
                },
                {
                  "player_name": "David Retamal",
                  "ranking": 13189
                }
              ]
            }
          }
        },
        "Denis Zakaria": {
          "player_id": 770677,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 6,
          "height": 191,
          "market_value": 26000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0033,
            "assists": 0,
            "expected_goals": 0.0124,
            "rating": 89.0301,
            "minutes": 23,
            "total_pass": 11,
            "accurate_pass": 9,
            "ball_recovery": 2,
            "duels_won": 0,
            "total_shots": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 2.6929,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 2,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 27,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.543,
            "bench_expected_minutes": 22.96,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 14061905,
              "match_date": "2026-05-17",
              "home_team": "RC Strasbourg",
              "away_team": "AS Monaco",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "AS Monaco",
              "opponent": "RC Strasbourg",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.0196,
                "expected_assists": 0.0128,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 41,
                "accurate_pass": 34,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 5,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Ligue 1",
              "league_id": "34",
              "league_slug": "ligue-1",
              "league_country": "France",
              "season_id": "77356",
              "season_name": "Ligue 1 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14064521,
              "match_date": "2026-05-10",
              "home_team": "AS Monaco",
              "away_team": "Lille",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "AS Monaco",
              "opponent": "Lille",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0085,
                "total_shots": 0,
                "total_pass": 53,
                "accurate_pass": 51,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Ligue 1",
              "league_id": "34",
              "league_slug": "ligue-1",
              "league_country": "France",
              "season_id": "77356",
              "season_name": "Ligue 1 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 9083,
            "combined_rank_score": 464.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 598.0,
            "sofascore_rating": 6.75,
            "sofascore_appearances": 2.0,
            "fifa_rank": 330.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "substitute",
            "projected_match_rating": 7.0301,
            "source_file": "data/player_rankings.csv",
            "player_name": "Denis Zakaria",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Feyiseitan Asagidigbi",
                  "ranking": 9078
                },
                {
                  "player_name": "Lucas Jensen",
                  "ranking": 9079
                },
                {
                  "player_name": "Won Hee-Do",
                  "ranking": 9080
                },
                {
                  "player_name": "Alejandro Peñalba",
                  "ranking": 9081
                },
                {
                  "player_name": "Mohamed Armoosha",
                  "ranking": 9082
                }
              ],
              "lower": [
                {
                  "player_name": "Gerónimo Patritti",
                  "ranking": 9084
                },
                {
                  "player_name": "Sander Berge",
                  "ranking": 9085
                },
                {
                  "player_name": "Alexis Saelemaekers",
                  "ranking": 9086
                },
                {
                  "player_name": "Hyun-muk Kang",
                  "ranking": 9087
                },
                {
                  "player_name": "Arihiro Sentoku",
                  "ranking": 9088
                }
              ]
            }
          }
        },
        "Noah Okafor": {
          "player_id": 865523,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 185,
          "market_value": 19800000,
          "stats": {
            "expected_goals": 0.0451,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 83.0633,
            "minutes": 26,
            "expected_assists": 0.015,
            "duels_won": 1,
            "aerial_won": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.593,
            "bench_expected_minutes": 26.05,
            "fifa_overall": 76.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 14350,
            "combined_rank_score": 917.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 1749.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "substitute",
            "projected_match_rating": 7.0633,
            "source_file": "data/player_rankings.csv",
            "player_name": "Noah Okafor",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Joan Orellana",
                  "ranking": 14345
                },
                {
                  "player_name": "Jefferson Wila",
                  "ranking": 14346
                },
                {
                  "player_name": "Sergio Núñez",
                  "ranking": 14347
                },
                {
                  "player_name": "Tomas Kalinauskas",
                  "ranking": 14348
                },
                {
                  "player_name": "Martín Cárcamo",
                  "ranking": 14349
                }
              ],
              "lower": [
                {
                  "player_name": "Santiago Ascacíbar",
                  "ranking": 14351
                },
                {
                  "player_name": "Dan Choi",
                  "ranking": 14352
                },
                {
                  "player_name": "Edwin Herrera",
                  "ranking": 14353
                },
                {
                  "player_name": "Rodrigo Atencio",
                  "ranking": 14354
                },
                {
                  "player_name": "Andreas Skov Olsen",
                  "ranking": 14355
                }
              ]
            }
          }
        },
        "Zeki Amdouni": {
          "player_id": 990550,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 25,
          "height": 183,
          "market_value": 9700000,
          "stats": {
            "expected_goals": 0.0004,
            "goal_rate": 0.0001,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0014,
            "key_pass": 0,
            "rating": 81.566,
            "minutes": 26,
            "total_shots": 0,
            "duels_won": 0,
            "aerial_won": 0,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 1,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 2,
            "possession_lost": 0.8587,
            "dispossessed": 1.0057,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0086,
            "offsides": 0,
            "ball_carries": 1,
            "total_progression": 8,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.573,
            "bench_expected_minutes": 25.61,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 14023960,
              "match_date": "2026-05-24",
              "home_team": "Burnley",
              "away_team": "Wolverhampton",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Burnley",
              "opponent": "Wolverhampton",
              "stats": {
                "minutes": 24,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0119,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 6
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14023950,
              "match_date": "2026-05-18",
              "home_team": "Arsenal",
              "away_team": "Burnley",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Burnley",
              "opponent": "Arsenal",
              "stats": {
                "minutes": 20,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 3,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14023929,
              "match_date": "2026-05-10",
              "home_team": "Burnley",
              "away_team": "Aston Villa",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Burnley",
              "opponent": "Aston Villa",
              "stats": {
                "minutes": 11,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.1668,
                "expected_assists": 0.0,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 1,
                "accurate_pass": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 14847,
            "combined_rank_score": 1156.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 2136.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "projected_match_rating": 6.566,
            "source_file": "data/player_rankings.csv",
            "player_name": "Zeki Amdouni",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Álvaro Montero",
                  "ranking": 14842
                },
                {
                  "player_name": "Germán Pezzella",
                  "ranking": 14843
                },
                {
                  "player_name": "Nahuel Tenaglia",
                  "ranking": 14844
                },
                {
                  "player_name": "Hugo Álvarez",
                  "ranking": 14845
                },
                {
                  "player_name": "İrfan Can Eğribayat",
                  "ranking": 14846
                }
              ],
              "lower": [
                {
                  "player_name": "Lucas Stassin",
                  "ranking": 14848
                },
                {
                  "player_name": "Rubén Vargas",
                  "ranking": 14849
                },
                {
                  "player_name": "André Silva",
                  "ranking": 14850
                },
                {
                  "player_name": "Albert Sambi Lokonga",
                  "ranking": 14851
                },
                {
                  "player_name": "Marash Kumbulla",
                  "ranking": 14852
                }
              ]
            }
          }
        }
      },
      "substitutes": {
        "Marvin Keller": {
          "player_id": 1005744,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 1,
          "height": 187,
          "market_value": 6800000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.0316,
            "rating": 79.139,
            "minutes": 5,
            "total_pass": 2,
            "accurate_pass": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0506,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.4151,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.117,
            "bench_expected_minutes": 4.58,
            "fifa_overall": 72.0
          },
          "latest_10_games": [
            {
              "match_id": 15916406,
              "match_date": "2026-05-17",
              "home_team": "BSC Young Boys",
              "away_team": "FC Sion",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "FC Sion",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0059,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 17,
                "clearances": 1,
                "ball_recovery": 8,
                "saves": 5,
                "goals_prevented": 0.2419
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15916399,
              "match_date": "2026-05-14",
              "home_team": "FC Thun",
              "away_team": "BSC Young Boys",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "FC Thun",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 23,
                "ball_recovery": 8,
                "saves": 3,
                "goals_prevented": -0.6595
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15916393,
              "match_date": "2026-05-10",
              "home_team": "BSC Young Boys",
              "away_team": "Basel",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "Basel",
              "stats": {
                "minutes": 90,
                "rating": 9.7,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 25,
                "clearances": 1,
                "ball_recovery": 7,
                "saves": 6,
                "goals_prevented": 1.9479
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15916390,
              "match_date": "2026-05-03",
              "home_team": "FC Lugano",
              "away_team": "BSC Young Boys",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "FC Lugano",
              "stats": {
                "minutes": 90,
                "rating": 9.6,
                "assists": 0,
                "expected_assists": 0.0013,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 22,
                "duels_won": 1,
                "ball_recovery": 10,
                "saves": 6,
                "goals_prevented": 1.4898
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15916388,
              "match_date": "2026-04-26",
              "home_team": "BSC Young Boys",
              "away_team": "FC St. Gallen 1879",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "BSC Young Boys",
              "opponent": "FC St. Gallen 1879",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0036,
                "total_shots": 0,
                "total_pass": 45,
                "accurate_pass": 31,
                "ball_recovery": 11,
                "saves": 3,
                "goals_prevented": -1.0917
              },
              "has_player_stats": true,
              "league_name": "Swiss Super League",
              "league_id": "215",
              "league_slug": "super-league",
              "league_country": "Switzerland",
              "season_id": "77152",
              "season_name": "Super League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 15988,
            "combined_rank_score": 2047.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 3891.0,
            "fifa_overall": 72.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 7.139,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marvin Keller",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Pablo Marín",
                  "ranking": 15983
                },
                {
                  "player_name": "Fernando",
                  "ranking": 15984
                },
                {
                  "player_name": "Jakub Markovič",
                  "ranking": 15985
                },
                {
                  "player_name": "Diego Luna",
                  "ranking": 15986
                },
                {
                  "player_name": "Ryan Kent",
                  "ranking": 15987
                }
              ],
              "lower": [
                {
                  "player_name": "Gabriel Moscardo",
                  "ranking": 15989
                },
                {
                  "player_name": "Walter Bou",
                  "ranking": 15990
                },
                {
                  "player_name": "Karim Onisiwo",
                  "ranking": 15991
                },
                {
                  "player_name": "Mats Deijl",
                  "ranking": 15992
                },
                {
                  "player_name": "Jairo Concha",
                  "ranking": 15993
                }
              ]
            }
          }
        },
        "Luca Jaquez": {
          "player_id": 1127823,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 14,
          "height": 187,
          "market_value": 10700000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "rating": 75.6982,
            "minutes": 14,
            "total_pass": 4,
            "accurate_pass": 3,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 5,
            "possession_lost": 0.8207,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0047,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 5,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.316,
            "bench_expected_minutes": 13.94,
            "fifa_overall": 69.0
          },
          "latest_10_games": [
            {
              "match_id": 14065560,
              "match_date": "2026-05-16",
              "home_team": "Eintracht Frankfurt",
              "away_team": "VfB Stuttgart",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "VfB Stuttgart",
              "opponent": "Eintracht Frankfurt",
              "stats": {
                "minutes": 17,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 3,
                "clearances": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065248,
              "match_date": "2026-05-09",
              "home_team": "VfB Stuttgart",
              "away_team": "Bayer 04 Leverkusen",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "VfB Stuttgart",
              "opponent": "Bayer 04 Leverkusen",
              "stats": {
                "minutes": 12,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0068,
                "total_shots": 0,
                "total_pass": 2,
                "accurate_pass": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065244,
              "match_date": "2026-05-02",
              "home_team": "TSG Hoffenheim",
              "away_team": "VfB Stuttgart",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "VfB Stuttgart",
              "opponent": "TSG Hoffenheim",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0118,
                "total_shots": 0,
                "total_pass": 62,
                "accurate_pass": 53,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631840,
              "match_date": "2026-03-19",
              "home_team": "FC Porto",
              "away_team": "VfB Stuttgart",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "VfB Stuttgart",
              "opponent": "FC Porto",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assists": 0,
                "expected_assists": 0.1416,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 36,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 15631832,
              "match_date": "2026-03-12",
              "home_team": "VfB Stuttgart",
              "away_team": "FC Porto",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "VfB Stuttgart",
              "opponent": "FC Porto",
              "stats": {
                "minutes": 20,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.0042,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 15,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "UEFA Europa League",
              "league_id": "679",
              "league_slug": "uefa-europa-league",
              "league_country": "Europe",
              "season_id": "76984",
              "season_name": "UEFA Europa League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 18003,
            "combined_rank_score": 3676.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 533.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 6820.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "substitute",
            "projected_match_rating": 6.6982,
            "source_file": "data/player_rankings.csv",
            "player_name": "Luca Jaquez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Elías Cabrera",
                  "ranking": 17998
                },
                {
                  "player_name": "Louis Oppie",
                  "ranking": 17999
                },
                {
                  "player_name": "César Haydar",
                  "ranking": 18000
                },
                {
                  "player_name": "Novatus Miroshi",
                  "ranking": 18001
                },
                {
                  "player_name": "Matheus Araújo",
                  "ranking": 18002
                }
              ],
              "lower": [
                {
                  "player_name": "Pablo Rodríguez",
                  "ranking": 18004
                },
                {
                  "player_name": "Indiana Vassilev",
                  "ranking": 18005
                },
                {
                  "player_name": "Bledian Krasniqi",
                  "ranking": 18006
                },
                {
                  "player_name": "Viktor Claesson",
                  "ranking": 18007
                },
                {
                  "player_name": "Callum O'Dowda",
                  "ranking": 18008
                }
              ]
            }
          }
        },
        "Aurèle Amenda": {
          "player_id": 999276,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 5,
          "height": 194,
          "market_value": 8199999,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "rating": 77.4677,
            "minutes": 14,
            "total_pass": 9,
            "accurate_pass": 8,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 1.9468,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 3,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0031,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 10,
            "progressive_carries": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.31,
            "bench_expected_minutes": 13.82,
            "fifa_overall": 71.0
          },
          "latest_10_games": [
            {
              "match_id": 14065560,
              "match_date": "2026-05-16",
              "home_team": "Eintracht Frankfurt",
              "away_team": "VfB Stuttgart",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Eintracht Frankfurt",
              "opponent": "VfB Stuttgart",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0227,
                "total_shots": 0,
                "total_pass": 58,
                "accurate_pass": 47,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065245,
              "match_date": "2026-05-08",
              "home_team": "Borussia Dortmund",
              "away_team": "Eintracht Frankfurt",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Eintracht Frankfurt",
              "opponent": "Borussia Dortmund",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assists": 0,
                "expected_assists": 0.0149,
                "total_shots": 0,
                "total_pass": 58,
                "accurate_pass": 47,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14065239,
              "match_date": "2026-05-02",
              "home_team": "Eintracht Frankfurt",
              "away_team": "Hamburger SV",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Eintracht Frankfurt",
              "opponent": "Hamburger SV",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0206,
                "total_shots": 0,
                "total_pass": 68,
                "accurate_pass": 59,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 5,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Bundesliga",
              "league_id": "35",
              "league_slug": "bundesliga",
              "league_country": "Germany",
              "season_id": "77333",
              "season_name": "Bundesliga 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 16730,
            "combined_rank_score": 2635.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 5081.0,
            "fifa_overall": 71.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.4677,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aurèle Amenda",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Raul Gustavo",
                  "ranking": 16725
                },
                {
                  "player_name": "Amine El Ouazzani",
                  "ranking": 16726
                },
                {
                  "player_name": "Facundo Zabala",
                  "ranking": 16727
                },
                {
                  "player_name": "Sambou Soumano",
                  "ranking": 16728
                },
                {
                  "player_name": "Lautaro Giaccone",
                  "ranking": 16729
                }
              ],
              "lower": [
                {
                  "player_name": "Florian Tardieu",
                  "ranking": 16731
                },
                {
                  "player_name": "Ahmed Sharahili",
                  "ranking": 16732
                },
                {
                  "player_name": "Sebastián Pérez",
                  "ranking": 16733
                },
                {
                  "player_name": "Ahmetcan Kaplan",
                  "ranking": 16734
                },
                {
                  "player_name": "Andrea Compagno",
                  "ranking": 16735
                }
              ]
            }
          }
        },
        "Ardon Jashari": {
          "player_id": 1034082,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 30,
          "height": 180,
          "market_value": 29000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0146,
            "assists": 0,
            "expected_goals": 0.0,
            "rating": 84.0792,
            "minutes": 23,
            "total_pass": 7,
            "accurate_pass": 7,
            "ball_recovery": 1,
            "duels_won": 1,
            "total_shots": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 1.7697,
            "dispossessed": 2.126,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 1,
            "total_contest": 0,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 7,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.548,
            "bench_expected_minutes": 23.05,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 13980071,
              "match_date": "2026-05-24",
              "home_team": "AC Milan",
              "away_team": "Cagliari",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "AC Milan",
              "opponent": "Cagliari",
              "stats": {
                "minutes": 62,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.021,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 25,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 13980068,
              "match_date": "2026-05-17",
              "home_team": "Genoa",
              "away_team": "AC Milan",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "AC Milan",
              "opponent": "Genoa",
              "stats": {
                "minutes": 85,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0511,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Serie A",
              "league_id": "23",
              "league_slug": "serie-a",
              "league_country": "Italy",
              "season_id": "76457",
              "season_name": "Serie A 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 13184,
            "combined_rank_score": 681.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 1284.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "substitute",
            "projected_match_rating": 7.0792,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ardon Jashari",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lukas Klostermann",
                  "ranking": 13179
                },
                {
                  "player_name": "Calebe Gonçalves",
                  "ranking": 13180
                },
                {
                  "player_name": "Georgiy Sudakov",
                  "ranking": 13181
                },
                {
                  "player_name": "Georginio Rutter",
                  "ranking": 13182
                },
                {
                  "player_name": "Luis Suárez",
                  "ranking": 13183
                }
              ],
              "lower": [
                {
                  "player_name": "Nahuel Molina",
                  "ranking": 13185
                },
                {
                  "player_name": "Destiny Udogie",
                  "ranking": 13186
                },
                {
                  "player_name": "Adam Marušić",
                  "ranking": 13187
                },
                {
                  "player_name": "Jorge Herrando",
                  "ranking": 13188
                },
                {
                  "player_name": "David Retamal",
                  "ranking": 13189
                }
              ]
            }
          }
        },
        "Denis Zakaria": {
          "player_id": 770677,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 6,
          "height": 191,
          "market_value": 26000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0033,
            "assists": 0,
            "expected_goals": 0.0124,
            "rating": 89.0301,
            "minutes": 23,
            "total_pass": 11,
            "accurate_pass": 9,
            "ball_recovery": 2,
            "duels_won": 0,
            "total_shots": 0,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 6,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 2.6929,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 1,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 2,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 27,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.543,
            "bench_expected_minutes": 22.96,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 14061905,
              "match_date": "2026-05-17",
              "home_team": "RC Strasbourg",
              "away_team": "AS Monaco",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "AS Monaco",
              "opponent": "RC Strasbourg",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.0196,
                "expected_assists": 0.0128,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 41,
                "accurate_pass": 34,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 5,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Ligue 1",
              "league_id": "34",
              "league_slug": "ligue-1",
              "league_country": "France",
              "season_id": "77356",
              "season_name": "Ligue 1 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14064521,
              "match_date": "2026-05-10",
              "home_team": "AS Monaco",
              "away_team": "Lille",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "AS Monaco",
              "opponent": "Lille",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0085,
                "total_shots": 0,
                "total_pass": 53,
                "accurate_pass": 51,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Ligue 1",
              "league_id": "34",
              "league_slug": "ligue-1",
              "league_country": "France",
              "season_id": "77356",
              "season_name": "Ligue 1 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 9083,
            "combined_rank_score": 464.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 598.0,
            "sofascore_rating": 6.75,
            "sofascore_appearances": 2.0,
            "fifa_rank": 330.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "substitute",
            "projected_match_rating": 7.0301,
            "source_file": "data/player_rankings.csv",
            "player_name": "Denis Zakaria",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Feyiseitan Asagidigbi",
                  "ranking": 9078
                },
                {
                  "player_name": "Lucas Jensen",
                  "ranking": 9079
                },
                {
                  "player_name": "Won Hee-Do",
                  "ranking": 9080
                },
                {
                  "player_name": "Alejandro Peñalba",
                  "ranking": 9081
                },
                {
                  "player_name": "Mohamed Armoosha",
                  "ranking": 9082
                }
              ],
              "lower": [
                {
                  "player_name": "Gerónimo Patritti",
                  "ranking": 9084
                },
                {
                  "player_name": "Sander Berge",
                  "ranking": 9085
                },
                {
                  "player_name": "Alexis Saelemaekers",
                  "ranking": 9086
                },
                {
                  "player_name": "Hyun-muk Kang",
                  "ranking": 9087
                },
                {
                  "player_name": "Arihiro Sentoku",
                  "ranking": 9088
                }
              ]
            }
          }
        },
        "Noah Okafor": {
          "player_id": 865523,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 185,
          "market_value": 19800000,
          "stats": {
            "expected_goals": 0.0451,
            "goal_rate": 0.0,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 83.0633,
            "minutes": 26,
            "expected_assists": 0.015,
            "duels_won": 1,
            "aerial_won": 0,
            "key_pass": 0,
            "bench_appearance_probability": 0.593,
            "bench_expected_minutes": 26.05,
            "fifa_overall": 76.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 14350,
            "combined_rank_score": 917.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 1749.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "substitute",
            "projected_match_rating": 7.0633,
            "source_file": "data/player_rankings.csv",
            "player_name": "Noah Okafor",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Joan Orellana",
                  "ranking": 14345
                },
                {
                  "player_name": "Jefferson Wila",
                  "ranking": 14346
                },
                {
                  "player_name": "Sergio Núñez",
                  "ranking": 14347
                },
                {
                  "player_name": "Tomas Kalinauskas",
                  "ranking": 14348
                },
                {
                  "player_name": "Martín Cárcamo",
                  "ranking": 14349
                }
              ],
              "lower": [
                {
                  "player_name": "Santiago Ascacíbar",
                  "ranking": 14351
                },
                {
                  "player_name": "Dan Choi",
                  "ranking": 14352
                },
                {
                  "player_name": "Edwin Herrera",
                  "ranking": 14353
                },
                {
                  "player_name": "Rodrigo Atencio",
                  "ranking": 14354
                },
                {
                  "player_name": "Andreas Skov Olsen",
                  "ranking": 14355
                }
              ]
            }
          }
        },
        "Zeki Amdouni": {
          "player_id": 990550,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 25,
          "height": 183,
          "market_value": 9700000,
          "stats": {
            "expected_goals": 0.0004,
            "goal_rate": 0.0001,
            "goals": 0,
            "shots_on_target": 0,
            "expected_assists": 0.0014,
            "key_pass": 0,
            "rating": 81.566,
            "minutes": 26,
            "total_shots": 0,
            "duels_won": 0,
            "aerial_won": 0,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 1,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 2,
            "possession_lost": 0.8587,
            "dispossessed": 1.0057,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0086,
            "offsides": 0,
            "ball_carries": 1,
            "total_progression": 8,
            "progressive_carries": 0,
            "bench_appearance_probability": 0.573,
            "bench_expected_minutes": 25.61,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 14023960,
              "match_date": "2026-05-24",
              "home_team": "Burnley",
              "away_team": "Wolverhampton",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Burnley",
              "opponent": "Wolverhampton",
              "stats": {
                "minutes": 24,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0119,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 6
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14023950,
              "match_date": "2026-05-18",
              "home_team": "Arsenal",
              "away_team": "Burnley",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Burnley",
              "opponent": "Arsenal",
              "stats": {
                "minutes": 20,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0007,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 3,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            },
            {
              "match_id": 14023929,
              "match_date": "2026-05-10",
              "home_team": "Burnley",
              "away_team": "Aston Villa",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Burnley",
              "opponent": "Aston Villa",
              "stats": {
                "minutes": 11,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.1668,
                "expected_assists": 0.0,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 1,
                "accurate_pass": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "76986",
              "season_name": "Premier League 25/26",
              "season_year": "25/26"
            }
          ],
          "ranking": {
            "global_player_rank": 14847,
            "combined_rank_score": 1156.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 2136.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "substitute",
            "projected_match_rating": 6.566,
            "source_file": "data/player_rankings.csv",
            "player_name": "Zeki Amdouni",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Álvaro Montero",
                  "ranking": 14842
                },
                {
                  "player_name": "Germán Pezzella",
                  "ranking": 14843
                },
                {
                  "player_name": "Nahuel Tenaglia",
                  "ranking": 14844
                },
                {
                  "player_name": "Hugo Álvarez",
                  "ranking": 14845
                },
                {
                  "player_name": "İrfan Can Eğribayat",
                  "ranking": 14846
                }
              ],
              "lower": [
                {
                  "player_name": "Lucas Stassin",
                  "ranking": 14848
                },
                {
                  "player_name": "Rubén Vargas",
                  "ranking": 14849
                },
                {
                  "player_name": "André Silva",
                  "ranking": 14850
                },
                {
                  "player_name": "Albert Sambi Lokonga",
                  "ranking": 14851
                },
                {
                  "player_name": "Marash Kumbulla",
                  "ranking": 14852
                }
              ]
            }
          }
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.59,
        "expected_assists": 1.18,
        "total_shots": 11,
        "shots_on_target": 3,
        "total_passes": 500,
        "interceptions": 12,
        "tackles": 17,
        "avg_rating": 84.68,
        "possession_estimated_pct": 52.8,
        "pressing_actions_per_90": 7.8
      }
    }
  },
  "antagonist_report": {
    "home_attacking_duels": [
      {
        "attacker": "Ahmed Fathi",
        "attacker_role": "CDM",
        "attacker_market_value": 270000,
        "attacker_height": 166,
        "attacker_skill_quality": 0.403,
        "defenders": [
          "Remo Freuler"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.439,
        "duel_zone": "CDM vs CDM",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.344,
        "xg_contribution": 0.0436,
        "shots_in_zone": 0.9,
        "dribbles_attempted": 1,
        "dribbles_successful": 0.3,
        "aerial_duels": 2,
        "aerial_won": 0.7,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Remo Freuler",
            "role": "CDM",
            "market_value": 3100000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.8,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.3,
            "defensive_success_rate": 0.656
          }
        ],
        "duel_analysis": "Ahmed Fathi (CDM) faces tough defensive resistance against Remo Freuler in a direct 1v1 contest. Duel win probability: 34%.  Projected xG contribution: 0.044 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Edmilson Junior",
        "attacker_role": "CM",
        "attacker_market_value": 1900000,
        "attacker_height": 180,
        "attacker_skill_quality": 0.424,
        "defenders": [
          "Remo Freuler"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.439,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.439,
        "xg_contribution": 0.1039,
        "shots_in_zone": 1.6,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Remo Freuler",
            "role": "CDM",
            "market_value": 3100000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.7,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.561
          }
        ],
        "duel_analysis": "Edmilson Junior (CM) is evenly matched against Remo Freuler in a direct 1v1 contest. Duel win probability: 44%.  Projected xG contribution: 0.104 — with neither side clearly dominant."
      }
    ],
    "away_attacking_duels": [
      {
        "attacker": "Granit Xhaka",
        "attacker_role": "LW",
        "attacker_market_value": 10600000,
        "attacker_height": 185,
        "attacker_skill_quality": 0.529,
        "defenders": [
          "Ayoub Al Oui"
        ],
        "defender_roles": [
          "RB"
        ],
        "def_skill_quality_avg": 0.404,
        "duel_zone": "Left Wing vs Right Back — Flank Battle",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.564,
        "xg_contribution": 0.2608,
        "shots_in_zone": 2.1,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.5,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 2.0,
        "fouls_drawn": 1.0,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ayoub Al Oui",
            "role": "RB",
            "market_value": 360000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.4,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.436
          }
        ],
        "duel_analysis": "Granit Xhaka (LW) is slightly favored against Ayoub Al Oui in a direct 1v1 contest. Duel win probability: 56%.  Projected xG contribution: 0.261 — creating consistent moderate threat."
      },
      {
        "attacker": "Johan Manzambi",
        "attacker_role": "RW",
        "attacker_market_value": 54000000,
        "attacker_height": 182,
        "attacker_skill_quality": 0.837,
        "defenders": [
          "Boualem Khoukhi"
        ],
        "defender_roles": [
          "LB"
        ],
        "def_skill_quality_avg": 0.402,
        "duel_zone": "Right Wing vs Left Back — Flank Battle",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.672,
        "xg_contribution": 0.14,
        "shots_in_zone": 2.4,
        "dribbles_attempted": 4,
        "dribbles_successful": 2.4,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 2.6,
        "fouls_drawn": 1.0,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Boualem Khoukhi",
            "role": "LB",
            "market_value": 190000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.2,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.328
          }
        ],
        "duel_analysis": "Johan Manzambi (RW) has a clear attacking advantage against Boualem Khoukhi in a direct 1v1 contest. Duel win probability: 67%. The quality gap is significant (€54M vs €0M avg). Projected xG contribution: 0.140 — and projects to generate high-quality chances."
      },
      {
        "attacker": "Dan Ndoye",
        "attacker_role": "CAM",
        "attacker_market_value": 34000000,
        "attacker_height": 184,
        "attacker_skill_quality": 0.746,
        "defenders": [
          "Ahmed Fathi"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.403,
        "duel_zone": "Attacking Mid vs Single Holding Mid — Space Creator Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.674,
        "xg_contribution": 0.3153,
        "shots_in_zone": 2.9,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.8,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.0,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ahmed Fathi",
            "role": "CDM",
            "market_value": 270000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.2,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.326
          }
        ],
        "duel_analysis": "Dan Ndoye (CAM) has a clear attacking advantage against Ahmed Fathi in a direct 1v1 contest. Duel win probability: 67%. The quality gap is significant (€34M vs €0M avg). Projected xG contribution: 0.315 — and projects to generate high-quality chances."
      },
      {
        "attacker": "Breel Embolo",
        "attacker_role": "ST",
        "attacker_market_value": 13600000,
        "attacker_height": 185,
        "attacker_skill_quality": 0.564,
        "defenders": [
          "Homam Al-Amin",
          "Pedro Miguel"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.404,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.264,
        "xg_contribution": 0.1195,
        "shots_in_zone": 2.4,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.5,
        "aerial_duels": 3,
        "aerial_won": 1.8,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Homam Al-Amin",
            "role": "CB",
            "market_value": 460000,
            "tackles_attempted": 0.9,
            "tackles_won": 1.0,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.736
          },
          {
            "player": "Pedro Miguel",
            "role": "CB",
            "market_value": 160000,
            "tackles_attempted": 0.9,
            "tackles_won": 1.0,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.6,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.736
          }
        ],
        "duel_analysis": "Breel Embolo (ST) is heavily outmatched defensively against Homam Al-Amin and Pedro Miguel in a 2-defender block. Duel win probability: 26%.  Projected xG contribution: 0.119 — with very limited chance creation expected."
      },
      {
        "attacker": "Remo Freuler",
        "attacker_role": "CDM",
        "attacker_market_value": 3100000,
        "attacker_height": 181,
        "attacker_skill_quality": 0.439,
        "defenders": [
          "Edmilson Junior"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.424,
        "duel_zone": "Holding Mid vs Central Mid — Midfield Anchor Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.411,
        "xg_contribution": 0.0509,
        "shots_in_zone": 1.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Edmilson Junior",
            "role": "CM",
            "market_value": 1900000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.7,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.589
          }
        ],
        "duel_analysis": "Remo Freuler (CDM) faces tough defensive resistance against Edmilson Junior in a direct 1v1 contest. Duel win probability: 41%.  Projected xG contribution: 0.051 — and is restricted in space and time on the ball."
      }
    ],
    "midfield_battle": {
      "home_midfield_power": 0.501,
      "away_midfield_power": 0.644,
      "home_creative_power": 0.421,
      "away_creative_power": 0.566,
      "home_defensive_power": 0.379,
      "away_defensive_power": 0.668,
      "home_dominance_ratio": 0.438,
      "home_midfield_count": 6,
      "away_midfield_count": 6,
      "home_midfield_players": [
        "Akram Afif",
        "Almoez Ali",
        "Edmilson Junior",
        "Karim Boudiaf",
        "Ahmed Fathi",
        "Jassem Gaber Abdulsallam"
      ],
      "away_midfield_players": [
        "Johan Manzambi",
        "Michel Aebischer",
        "Dan Ndoye",
        "Granit Xhaka",
        "Remo Freuler",
        "Silvan Widmer"
      ],
      "possession_advantage": "away",
      "estimated_possession_home_pct": 47.2,
      "estimated_possession_away_pct": 52.8,
      "home_pressing_actions_per_90": 6.1,
      "away_pressing_actions_per_90": 7.8,
      "home_key_passes_projected": 4.0,
      "away_key_passes_projected": 4.9,
      "home_throughball_threat": 1.9,
      "away_throughball_threat": 2.3,
      "key_personal_duel": "Akram Afif vs Johan Manzambi",
      "midfield_lambda_factor_home": 0.97,
      "midfield_lambda_factor_away": 1.028
    },
    "formation_analysis": {
      "home_formation": "4-3-3",
      "away_formation": "4-2-3-1",
      "home_tactical_bonus": 0.03,
      "away_tactical_bonus": -0.01,
      "formation_verdict": "Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality."
    },
    "home_lambda": 1.05,
    "away_lambda": 1.589,
    "home_top_threat_zones": [
      "Central Mid vs Defensive Mid — Pressing/Creation Duel",
      "CDM vs CDM"
    ],
    "away_top_threat_zones": [
      "Attacking Mid vs Single Holding Mid — Space Creator Duel",
      "Left Wing vs Right Back — Flank Battle"
    ],
    "home_player_antagonists": {
      "Ahmed Fathi": {
        "opponents": [
          "Remo Freuler",
          "Dan Ndoye"
        ],
        "primary_zone": "CDM vs CDM",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Edmilson Junior": {
        "opponents": [
          "Remo Freuler"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Ayoub Al Oui": {
        "opponents": [
          "Granit Xhaka"
        ],
        "primary_zone": "Left Wing vs Right Back — Flank Battle",
        "source": "defensive_duel"
      },
      "Boualem Khoukhi": {
        "opponents": [
          "Johan Manzambi"
        ],
        "primary_zone": "Right Wing vs Left Back — Flank Battle",
        "source": "defensive_duel"
      },
      "Homam Al-Amin": {
        "opponents": [
          "Breel Embolo"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Pedro Miguel": {
        "opponents": [
          "Breel Embolo"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Akram Afif": {
        "opponents": [
          "Silvan Widmer"
        ],
        "primary_zone": "Midfield lane",
        "source": "midfield_pairing"
      },
      "Almoez Ali": {
        "opponents": [
          "Michel Aebischer"
        ],
        "primary_zone": "Midfield lane",
        "source": "midfield_pairing"
      },
      "Karim Boudiaf": {
        "opponents": [
          "Granit Xhaka"
        ],
        "primary_zone": "Midfield lane",
        "source": "midfield_pairing"
      },
      "Jassem Gaber Abdulsallam": {
        "opponents": [
          "Johan Manzambi"
        ],
        "primary_zone": "Midfield lane",
        "source": "midfield_pairing"
      },
      "Mahmud Abunad": {
        "opponents": [
          "Breel Embolo",
          "Dan Ndoye"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "away_player_antagonists": {
      "Remo Freuler": {
        "opponents": [
          "Ahmed Fathi",
          "Edmilson Junior"
        ],
        "primary_zone": "CDM vs CDM",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Granit Xhaka": {
        "opponents": [
          "Ayoub Al Oui",
          "Karim Boudiaf"
        ],
        "primary_zone": "Left Wing vs Right Back — Flank Battle",
        "source": "attacking_duel, midfield_pairing"
      },
      "Johan Manzambi": {
        "opponents": [
          "Boualem Khoukhi",
          "Jassem Gaber Abdulsallam"
        ],
        "primary_zone": "Right Wing vs Left Back — Flank Battle",
        "source": "attacking_duel, midfield_pairing"
      },
      "Dan Ndoye": {
        "opponents": [
          "Ahmed Fathi"
        ],
        "primary_zone": "Attacking Mid vs Single Holding Mid — Space Creator Duel",
        "source": "attacking_duel, midfield_pairing"
      },
      "Breel Embolo": {
        "opponents": [
          "Homam Al-Amin",
          "Pedro Miguel"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Silvan Widmer": {
        "opponents": [
          "Akram Afif"
        ],
        "primary_zone": "Midfield lane",
        "source": "midfield_pairing"
      },
      "Michel Aebischer": {
        "opponents": [
          "Almoez Ali"
        ],
        "primary_zone": "Midfield lane",
        "source": "midfield_pairing"
      },
      "Gregor Kobel": {
        "opponents": [
          "Akram Afif",
          "Almoez Ali"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Nico Elvedi": {
        "opponents": [
          "Edmilson Junior"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Manuel Akanji": {
        "opponents": [
          "Jassem Gaber Abdulsallam"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Ricardo Rodríguez": {
        "opponents": [
          "Karim Boudiaf"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "key_tactical_insight": "Away midfield dictates play with ~53% possession expected (Akram Afif vs Johan Manzambi). Total antagonist xG — Home: 0.15, Away: 0.89. Home danger zone: Central Mid vs Defensive Mid — Pressing/Creation Duel. Away danger zone: Attacking Mid vs Single Holding Mid — Space Creator Duel.",
    "lambda_factors": {
      "home_gk_opposition_factor": 0.8678,
      "away_gk_opposition_factor": 1.0238,
      "home_set_piece_bonus": 0.057,
      "away_set_piece_bonus": 0.0953,
      "home_defensive_solidity_vs": 0.9969,
      "away_defensive_solidity_vs": 1.0228,
      "home_midfield_factor": 0.97,
      "away_midfield_factor": 1.028,
      "stage_discount": 1.0,
      "quality_gap_applied": true,
      "home_avg_quality": 0.4172,
      "away_avg_quality": 0.5471,
      "avg_quality_gap": -0.1298,
      "squad_value_gap_log": -1.8682,
      "top5_value_gap_log": -1.8012,
      "attack_value_gap_log": -1.7467,
      "elite_count_gap": -1,
      "combined_quality_gap": -0.3688,
      "stronger_lambda_boost": 0.2028,
      "weaker_lambda_suppression": 0.118,
      "home_bench_lambda_bonus": 0.0,
      "away_bench_lambda_bonus": 0.0392,
      "home_bench_players_modelled": 7,
      "away_bench_players_modelled": 7,
      "mismatch_score_pressure_applied": true,
      "mismatch_score_pressure_gap": -0.3688,
      "mismatch_favorite_lambda_boost": 1.0972,
      "mismatch_underdog_lambda_factor": 0.9731,
      "pre_mismatch_home_lambda": 0.65,
      "pre_mismatch_away_lambda": 1.448,
      "competitive_underdog_floor_applied": true,
      "competitive_underdog_floor": 1.05,
      "pre_competitive_floor_home_lambda": 0.65,
      "pre_competitive_floor_away_lambda": 1.589,
      "pre_calibration_home_lambda": 0.65,
      "pre_calibration_away_lambda": 1.4482,
      "competition_calibration_applied": false,
      "competition_calibration_reason": "no_sofascore_matches_data",
      "competition_calibration_samples": 0,
      "competition_observed_total_goals": 0.0,
      "competition_calibration_scale": 1.0,
      "neutral_share_preserved": true,
      "final_home_lambda": 1.05,
      "final_away_lambda": 1.589
    }
  },
  "home_standing": {
    "available": false,
    "team_position": null,
    "opponent_position": null,
    "standing_lambda_multiplier": 1.0,
    "attack_index": null,
    "defense_concede_index": null,
    "form_multiplier": null,
    "team_attack_rate_contextual": null,
    "opp_defense_rate_contextual": null,
    "team_ppg": null,
    "opponent_ppg": null
  },
  "away_standing": {
    "available": false,
    "team_position": null,
    "opponent_position": null,
    "standing_lambda_multiplier": 1.0,
    "attack_index": null,
    "defense_concede_index": null,
    "form_multiplier": null,
    "team_attack_rate_contextual": null,
    "opp_defense_rate_contextual": null,
    "team_ppg": null,
    "opponent_ppg": null
  },
  "timestamp": "2026-06-13T13:31:05Z"
}