{
  "id": "wc2026-edgecases",
  "title": "FIFA World Cup 2026 Edge Cases (Tie + Penalties + Lock Boundaries)",
  "competition": {
    "name": "Simulation FIFA World Cup 2026 Edge Cases",
    "season": "2026",
    "format": "group_knockout",
    "competitionType": "national_team",
    "competitionScope": "international",
    "groupsCount": 12,
    "teamsPerGroup": 4,
    "advancePerGroup": 2,
    "bestThirdCount": 8,
    "knockoutStartRound": 32,
    "knockoutLegs": 1
  },
  "stages": [
    { "name": "Group Stage", "sortOrder": 1, "stageType": "group", "roundSize": null },
    { "name": "Round of 32", "sortOrder": 2, "stageType": "knockout", "roundSize": 32 },
    { "name": "Round of 16 - 1st Leg", "sortOrder": 3, "stageType": "knockout", "roundSize": 16 },
    { "name": "Quarter-finals", "sortOrder": 4, "stageType": "knockout", "roundSize": 8 }
  ],
  "generateGroupMatches": true,
  "groups": [
    { "name": "Group A", "teams": ["A1", "A2", "A3", "A4"], "template": "third4" },
    { "name": "Group B", "teams": ["B1", "B2", "B3", "B4"], "template": "third4" },
    { "name": "Group C", "teams": ["C1", "C2", "C3", "C4"], "template": "third4" },
    { "name": "Group D", "teams": ["D1", "D2", "D3", "D4"], "template": "third4" },
    { "name": "Group E", "teams": ["E1", "E2", "E3", "E4"], "template": "third4" },
    { "name": "Group F", "teams": ["F1", "F2", "F3", "F4"], "template": "third4" },
    { "name": "Group G", "teams": ["G1", "G2", "G3", "G4"], "template": "third4" },
    { "name": "Group H", "teams": ["H1", "H2", "H3", "H4"], "template": "third4" },
    { "name": "Group I", "teams": ["I1", "I2", "I3", "I4"], "template": "third4" },
    { "name": "Group J", "teams": ["J1", "J2", "J3", "J4"], "template": "third4" },
    { "name": "Group K", "teams": ["K1", "K2", "K3", "K4"], "template": "third4" },
    { "name": "Group L", "teams": ["L1", "L2", "L3", "L4"], "template": "third4" }
  ],
  "matchTemplates": {
    "third4": [
      { "homeIndex": 0, "awayIndex": 1, "homeScore": 2, "awayScore": 0 },
      { "homeIndex": 2, "awayIndex": 3, "homeScore": 1, "awayScore": 0 },
      { "homeIndex": 0, "awayIndex": 2, "homeScore": 1, "awayScore": 0 },
      { "homeIndex": 1, "awayIndex": 3, "homeScore": 2, "awayScore": 0 },
      { "homeIndex": 0, "awayIndex": 3, "homeScore": 1, "awayScore": 0 },
      { "homeIndex": 1, "awayIndex": 2, "homeScore": 1, "awayScore": 1 }
    ]
  },
  "matches": [
    {
      "id": "ko1",
      "stage": "Round of 32",
      "kickoffAt": "2026-07-01T16:00:00Z",
      "home": "A1",
      "away": "B2",
      "status": "finished",
      "allowExtraTime": 1,
      "homeScore": 2,
      "awayScore": 2,
      "extraTime": 1,
      "penalties": 1,
      "penaltyWinner": "home"
    },
    {
      "id": "ko2",
      "stage": "Round of 32",
      "kickoffAt": "2026-07-01T19:00:00Z",
      "home": "C1",
      "away": "D2",
      "status": "finished",
      "allowExtraTime": 1,
      "homeScore": 1,
      "awayScore": 1,
      "extraTime": 1,
      "penalties": 1,
      "penaltyWinner": "away"
    },
    {
      "id": "ko3",
      "stage": "Quarter-finals",
      "kickoffAt": "2026-07-05T18:00:00Z",
      "home": "E1",
      "away": "F2",
      "status": "finished",
      "allowExtraTime": 1,
      "homeScore": 0,
      "awayScore": 0,
      "extraTime": 1,
      "penalties": 1,
      "penaltyWinner": "home"
    },
    {
      "id": "ko4",
      "stage": "Quarter-finals",
      "kickoffAt": "2026-07-05T21:00:00Z",
      "home": "G1",
      "away": "H2",
      "status": "finished",
      "allowExtraTime": 1,
      "homeScore": 3,
      "awayScore": 3,
      "extraTime": 1,
      "penalties": 1,
      "penaltyWinner": "away"
    },
    {
      "id": "ko5",
      "stage": "Round of 16 - 1st Leg",
      "kickoffAt": "2026-07-03T17:00:00Z",
      "home": "I1",
      "away": "J2",
      "status": "finished",
      "allowExtraTime": 1,
      "homeScore": 1,
      "awayScore": 0,
      "extraTime": 0,
      "penalties": 0,
      "penaltyWinner": null
    },
    {
      "id": "ko6",
      "stage": "Round of 16 - 1st Leg",
      "kickoffAt": "2026-07-03T20:00:00Z",
      "home": "K1",
      "away": "L2",
      "status": "finished",
      "allowExtraTime": 1,
      "homeScore": 0,
      "awayScore": 0,
      "extraTime": 0,
      "penalties": 0,
      "penaltyWinner": null
    },
    {
      "id": "ko7",
      "stage": "Quarter-finals",
      "kickoffAt": "2026-07-06T18:00:00Z",
      "home": "I1",
      "away": "J2",
      "status": "finished",
      "allowExtraTime": 1,
      "homeScore": 1,
      "awayScore": 2,
      "extraTime": 1,
      "penalties": 0,
      "penaltyWinner": null
    },
    {
      "id": "ko8",
      "stage": "Round of 32",
      "kickoffAt": "2026-07-02T18:00:00Z",
      "home": "K1",
      "away": "L2",
      "status": "finished",
      "allowExtraTime": 1,
      "homeScore": 2,
      "awayScore": 1,
      "extraTime": 1,
      "penalties": 0,
      "penaltyWinner": null
    }
  ],
  "teams": [
    { "code": "A1", "name": "Nation A1" },
    { "code": "A2", "name": "Nation A2" },
    { "code": "A3", "name": "Nation A3" },
    { "code": "A4", "name": "Nation A4" },
    { "code": "B1", "name": "Nation B1" },
    { "code": "B2", "name": "Nation B2" },
    { "code": "B3", "name": "Nation B3" },
    { "code": "B4", "name": "Nation B4" },
    { "code": "C1", "name": "Nation C1" },
    { "code": "C2", "name": "Nation C2" },
    { "code": "C3", "name": "Nation C3" },
    { "code": "C4", "name": "Nation C4" },
    { "code": "D1", "name": "Nation D1" },
    { "code": "D2", "name": "Nation D2" },
    { "code": "D3", "name": "Nation D3" },
    { "code": "D4", "name": "Nation D4" },
    { "code": "E1", "name": "Nation E1" },
    { "code": "E2", "name": "Nation E2" },
    { "code": "E3", "name": "Nation E3" },
    { "code": "E4", "name": "Nation E4" },
    { "code": "F1", "name": "Nation F1" },
    { "code": "F2", "name": "Nation F2" },
    { "code": "F3", "name": "Nation F3" },
    { "code": "F4", "name": "Nation F4" },
    { "code": "G1", "name": "Nation G1" },
    { "code": "G2", "name": "Nation G2" },
    { "code": "G3", "name": "Nation G3" },
    { "code": "G4", "name": "Nation G4" },
    { "code": "H1", "name": "Nation H1" },
    { "code": "H2", "name": "Nation H2" },
    { "code": "H3", "name": "Nation H3" },
    { "code": "H4", "name": "Nation H4" },
    { "code": "I1", "name": "Nation I1" },
    { "code": "I2", "name": "Nation I2" },
    { "code": "I3", "name": "Nation I3" },
    { "code": "I4", "name": "Nation I4" },
    { "code": "J1", "name": "Nation J1" },
    { "code": "J2", "name": "Nation J2" },
    { "code": "J3", "name": "Nation J3" },
    { "code": "J4", "name": "Nation J4" },
    { "code": "K1", "name": "Nation K1" },
    { "code": "K2", "name": "Nation K2" },
    { "code": "K3", "name": "Nation K3" },
    { "code": "K4", "name": "Nation K4" },
    { "code": "L1", "name": "Nation L1" },
    { "code": "L2", "name": "Nation L2" },
    { "code": "L3", "name": "Nation L3" },
    { "code": "L4", "name": "Nation L4" }
  ],
  "users": [
    { "id": "oracle", "displayName": "Oracle" },
    { "id": "penalty_master", "displayName": "Penalty Master" },
    { "id": "outcome_only", "displayName": "Outcome Only" },
    { "id": "wrong_winner", "displayName": "Wrong Winner" }
  ],
  "predictionStrategy": {
    "oracle": "exact",
    "penalty_master": "home_1_0",
    "outcome_only": "home_1_0",
    "wrong_winner": "home_1_0"
  },
  "predictionSets": {
    "penalty_master": {
      "ko1": { "home": 2, "away": 2, "extraTime": 1, "penalties": 1, "penaltyWinner": "home" },
      "ko2": { "home": 0, "away": 0, "extraTime": 1, "penalties": 1, "penaltyWinner": "away" },
      "ko3": { "home": 1, "away": 1, "extraTime": 1, "penalties": 1, "penaltyWinner": "home" },
      "ko4": { "home": 2, "away": 2, "extraTime": 1, "penalties": 1, "penaltyWinner": "away" },
      "ko5": { "home": 1, "away": 0, "extraTime": 0, "penalties": 0 },
      "ko6": { "home": 1, "away": 0, "extraTime": 0, "penalties": 0 },
      "ko7": { "home": 1, "away": 2, "extraTime": 1, "penalties": 0 },
      "ko8": { "home": 1, "away": 0, "extraTime": 1, "penalties": 0 }
    },
    "outcome_only": {
      "ko1": { "home": 1, "away": 0, "extraTime": 0, "penalties": 0 },
      "ko2": { "home": 1, "away": 0, "extraTime": 0, "penalties": 0 },
      "ko3": { "home": 0, "away": 0, "extraTime": 1, "penalties": 1, "penaltyWinner": "home" },
      "ko4": { "home": 1, "away": 1, "extraTime": 1, "penalties": 1, "penaltyWinner": "away" },
      "ko5": { "home": 2, "away": 1, "extraTime": 0, "penalties": 0 },
      "ko6": { "home": 0, "away": 0, "extraTime": 0, "penalties": 0 },
      "ko7": { "home": 0, "away": 1, "extraTime": 1, "penalties": 0 },
      "ko8": { "home": 2, "away": 1, "extraTime": 0, "penalties": 0 }
    },
    "wrong_winner": {
      "ko1": { "home": 2, "away": 2, "extraTime": 1, "penalties": 1, "penaltyWinner": "away" },
      "ko2": { "home": 1, "away": 1, "extraTime": 1, "penalties": 1, "penaltyWinner": "home" },
      "ko3": { "home": 0, "away": 0, "extraTime": 1, "penalties": 1, "penaltyWinner": "away" },
      "ko4": { "home": 3, "away": 3, "extraTime": 1, "penalties": 1, "penaltyWinner": "home" },
      "ko5": { "home": 0, "away": 1, "extraTime": 0, "penalties": 0 },
      "ko6": { "home": 0, "away": 1, "extraTime": 0, "penalties": 0 },
      "ko7": { "home": 2, "away": 1, "extraTime": 1, "penalties": 0 },
      "ko8": { "home": 1, "away": 2, "extraTime": 1, "penalties": 0 }
    }
  }
}
