{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "nba-ai-insights-feed.schema.json",
  "title": "NBA AI Insights fixture feed snapshot",
  "allOf": [
    {
      "$ref": "content-feed.schema.json"
    },
    {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/nbaContentItem"
          }
        }
      }
    }
  ],
  "$defs": {
    "statisticValue": {
      "type": "object",
      "required": [
        "label",
        "entityId",
        "scope",
        "value",
        "displayValue"
      ],
      "properties": {
        "label": {
          "type": "string",
          "minLength": 1
        },
        "entityId": {
          "type": "string",
          "minLength": 1
        },
        "scope": {
          "enum": [
            "currentGame",
            "seasonAverage",
            "recentGame"
          ]
        },
        "value": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            },
            {
              "type": "boolean"
            }
          ]
        },
        "displayValue": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "statistic": {
      "type": "object",
      "required": [
        "key",
        "label",
        "unit",
        "values"
      ],
      "properties": {
        "key": {
          "type": "string",
          "pattern": "^[a-z][A-Za-z0-9]*$"
        },
        "label": {
          "type": "string",
          "minLength": 1
        },
        "unit": {
          "enum": [
            "count",
            "points",
            "percent"
          ]
        },
        "values": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/statisticValue"
          }
        }
      },
      "additionalProperties": false
    },
    "statisticValueV2": {
      "description": "Version 2 statistic value: the version 1 shape with a wider scope set. seasonAverage and seasonHigh cover the regular season, postseasonAverage and postseasonHigh this postseason, lastSeasonAverage the previous regular season, careerHigh regular-season games and careerPlayoffHigh playoff games; averages and highs are before the current game.",
      "type": "object",
      "required": [
        "label",
        "entityId",
        "scope",
        "value",
        "displayValue"
      ],
      "properties": {
        "label": {
          "type": "string",
          "minLength": 1
        },
        "entityId": {
          "type": "string",
          "minLength": 1
        },
        "scope": {
          "enum": [
            "currentGame",
            "seasonAverage",
            "postseasonAverage",
            "lastSeasonAverage",
            "recentGame",
            "seasonHigh",
            "postseasonHigh",
            "careerHigh",
            "careerPlayoffHigh"
          ]
        },
        "value": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            },
            {
              "type": "boolean"
            }
          ]
        },
        "displayValue": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "statisticV2": {
      "type": "object",
      "required": [
        "key",
        "label",
        "unit",
        "values"
      ],
      "properties": {
        "key": {
          "type": "string",
          "pattern": "^[a-z][A-Za-z0-9]*$"
        },
        "label": {
          "type": "string",
          "minLength": 1
        },
        "unit": {
          "enum": [
            "count",
            "points",
            "percent"
          ]
        },
        "values": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/statisticValueV2"
          }
        }
      },
      "additionalProperties": false
    },
    "gameState": {
      "type": "object",
      "required": [
        "period",
        "periodLabel",
        "clock",
        "awayTeamId",
        "awayScore",
        "homeTeamId",
        "homeScore"
      ],
      "properties": {
        "period": {
          "type": "integer",
          "minimum": 1
        },
        "periodLabel": {
          "type": "string",
          "minLength": 1
        },
        "clock": {
          "type": "string",
          "minLength": 1
        },
        "awayTeamId": {
          "type": "string",
          "minLength": 1
        },
        "awayScore": {
          "type": "integer",
          "minimum": 0
        },
        "homeTeamId": {
          "type": "string",
          "minLength": 1
        },
        "homeScore": {
          "type": "integer",
          "minimum": 0
        }
      },
      "additionalProperties": false
    },
    "recentPerformance": {
      "type": "object",
      "required": [
        "fixtureId",
        "fixtureDate",
        "opponentEntityId",
        "statistics"
      ],
      "properties": {
        "fixtureId": {
          "type": "string",
          "minLength": 1
        },
        "fixtureDate": {
          "type": "string",
          "format": "date"
        },
        "opponentEntityId": {
          "type": "string",
          "minLength": 1
        },
        "statistics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        }
      },
      "additionalProperties": false
    },
    "recentPerformanceV2": {
      "description": "Version 2 recent game. fixtureId is present only when the recent game's NBA game ID is known.",
      "type": "object",
      "required": [
        "fixtureDate",
        "opponentEntityId",
        "statistics"
      ],
      "properties": {
        "fixtureId": {
          "type": "string",
          "minLength": 1
        },
        "fixtureDate": {
          "type": "string",
          "format": "date"
        },
        "opponentEntityId": {
          "type": "string",
          "minLength": 1
        },
        "statistics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statisticV2"
          }
        }
      },
      "additionalProperties": false
    },
    "score": {
      "type": "object",
      "required": [
        "awayTeamId",
        "awayScore",
        "homeTeamId",
        "homeScore",
        "periodsPlayed"
      ],
      "properties": {
        "awayTeamId": {
          "type": "string",
          "minLength": 1
        },
        "awayScore": {
          "type": "integer",
          "minimum": 0
        },
        "homeTeamId": {
          "type": "string",
          "minLength": 1
        },
        "homeScore": {
          "type": "integer",
          "minimum": 0
        },
        "periodsPlayed": {
          "type": "integer",
          "minimum": 1
        }
      },
      "additionalProperties": false
    },
    "break": {
      "type": "object",
      "required": [
        "kind",
        "period",
        "clock"
      ],
      "properties": {
        "kind": {
          "enum": [
            "timeout",
            "quarter",
            "halftime",
            "overtime"
          ]
        },
        "period": {
          "type": "integer",
          "minimum": 1
        },
        "clock": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "initialGameEntryContent": {
      "type": "object",
      "required": [
        "headline",
        "summary",
        "supportingContext",
        "gameState"
      ],
      "properties": {
        "headline": {
          "type": "string",
          "minLength": 1
        },
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "supportingContext": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        }
      },
      "additionalProperties": false
    },
    "postGameContent": {
      "type": "object",
      "required": [
        "headline",
        "summary",
        "supportingContext",
        "finalScore"
      ],
      "properties": {
        "headline": {
          "type": "string",
          "minLength": 1
        },
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "supportingContext": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "finalScore": {
          "$ref": "#/$defs/score"
        }
      },
      "additionalProperties": false
    },
    "preGameContent": {
      "type": "object",
      "required": [
        "headline",
        "summary",
        "supportingContext",
        "scheduledTipoff"
      ],
      "properties": {
        "headline": {
          "type": "string",
          "minLength": 1
        },
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "supportingContext": {
          "type": "array",
          "maxItems": 3,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "scheduledTipoff": {
          "type": "string",
          "format": "date-time"
        }
      },
      "additionalProperties": false
    },
    "breakContent": {
      "type": "object",
      "required": [
        "headline",
        "keyTakeaways",
        "whatToWatchNext",
        "break",
        "gameState"
      ],
      "properties": {
        "headline": {
          "type": "string",
          "minLength": 1
        },
        "keyTakeaways": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "whatToWatchNext": {
          "type": "string",
          "minLength": 1
        },
        "break": {
          "$ref": "#/$defs/break"
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        }
      },
      "additionalProperties": false
    },
    "playerPerformanceContent": {
      "type": "object",
      "required": [
        "summary",
        "playerId",
        "gameState",
        "gameStatistics",
        "seasonAverages",
        "recentGames",
        "comparisons"
      ],
      "properties": {
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "playerId": {
          "type": "string",
          "minLength": 1
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        },
        "gameStatistics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "seasonAverages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "recentGames": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/recentPerformance"
          }
        },
        "comparisons": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "shotChartAssetId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "playerPerformanceContentV2": {
      "type": "object",
      "required": [
        "headline",
        "summary",
        "statLine",
        "playerId",
        "actionNumber",
        "gameState",
        "gameStatistics",
        "seasonAverages",
        "recentGames",
        "comparisons"
      ],
      "properties": {
        "headline": {
          "type": "string",
          "minLength": 1
        },
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "statLine": {
          "type": "string",
          "minLength": 1
        },
        "playerId": {
          "type": "string",
          "minLength": 1
        },
        "actionNumber": {
          "type": "integer",
          "minimum": 0
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        },
        "gameStatistics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statisticV2"
          }
        },
        "seasonAverages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statisticV2"
          }
        },
        "recentGames": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/recentPerformanceV2"
          }
        },
        "comparisons": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statisticV2"
          }
        },
        "shotChartAssetId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "teamPerformanceContent": {
      "type": "object",
      "required": [
        "summary",
        "teamId",
        "gameState",
        "gameStatistics",
        "seasonAverages",
        "comparisons"
      ],
      "properties": {
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "teamId": {
          "type": "string",
          "minLength": 1
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        },
        "gameStatistics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "seasonAverages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "comparisons": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "shotChartAssetId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "teamPerformanceContentV2": {
      "type": "object",
      "required": [
        "headline",
        "summary",
        "teamId",
        "gameState",
        "gameStatistics",
        "seasonAverages",
        "comparisons"
      ],
      "properties": {
        "headline": {
          "type": "string",
          "minLength": 1
        },
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "teamId": {
          "type": "string",
          "minLength": 1
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        },
        "gameStatistics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "seasonAverages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "comparisons": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "shotChartAssetId": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    },
    "fourFactorsContent": {
      "type": "object",
      "required": [
        "summary",
        "descriptor",
        "focusFactorKey",
        "gameState",
        "factors"
      ],
      "properties": {
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "descriptor": {
          "type": "string",
          "minLength": 1
        },
        "focusFactorKey": {
          "enum": [
            "effectiveFieldGoalPercentage",
            "turnoverPercentage",
            "offensiveReboundPercentage",
            "freeThrowRate"
          ]
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        },
        "factors": {
          "type": "array",
          "minItems": 4,
          "maxItems": 4,
          "items": {
            "$ref": "#/$defs/statistic"
          }
        }
      },
      "additionalProperties": false
    },
    "fourFactorsContentV2": {
      "type": "object",
      "required": [
        "summary",
        "descriptor",
        "focusFactorKey",
        "gameState",
        "factors",
        "unavailableFactorKeys"
      ],
      "properties": {
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "descriptor": {
          "type": "string",
          "minLength": 1
        },
        "focusFactorKey": {
          "enum": [
            "effectiveFieldGoalPercentage",
            "turnoverPercentage",
            "offensiveReboundPercentage",
            "freeThrowRate"
          ]
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        },
        "factors": {
          "type": "array",
          "minItems": 2,
          "maxItems": 4,
          "items": {
            "$ref": "#/$defs/statistic"
          }
        },
        "unavailableFactorKeys": {
          "type": "array",
          "maxItems": 2,
          "items": {
            "enum": [
              "effectiveFieldGoalPercentage",
              "turnoverPercentage",
              "offensiveReboundPercentage",
              "freeThrowRate"
            ]
          }
        }
      },
      "additionalProperties": false
    },
    "pointBreakdownContent": {
      "type": "object",
      "required": [
        "summary",
        "descriptor",
        "focusCategoryKey",
        "gameState",
        "categories"
      ],
      "properties": {
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "descriptor": {
          "type": "string",
          "minLength": 1
        },
        "focusCategoryKey": {
          "enum": [
            "fastBreakPoints",
            "pointsInPaint",
            "pointsOffTurnovers",
            "secondChancePoints"
          ]
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        },
        "categories": {
          "type": "array",
          "minItems": 4,
          "maxItems": 4,
          "items": {
            "$ref": "#/$defs/statistic"
          }
        }
      },
      "additionalProperties": false
    },
    "defensiveContent": {
      "type": "object",
      "required": [
        "summary",
        "focusStatisticKeys",
        "gameState",
        "statistics"
      ],
      "properties": {
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "focusStatisticKeys": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "enum": [
              "offensiveRebounds",
              "defensiveRebounds",
              "turnovers",
              "blocks",
              "steals"
            ]
          }
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        },
        "statistics": {
          "type": "array",
          "minItems": 5,
          "maxItems": 5,
          "items": {
            "$ref": "#/$defs/statistic"
          }
        }
      },
      "additionalProperties": false
    },
    "runScore": {
      "type": "object",
      "required": [
        "away",
        "home"
      ],
      "properties": {
        "away": {
          "type": "integer",
          "minimum": 0
        },
        "home": {
          "type": "integer",
          "minimum": 0
        }
      },
      "additionalProperties": false
    },
    "runMomentumContent": {
      "type": "object",
      "required": [
        "summary",
        "teamId",
        "actionNumber",
        "run",
        "contributors",
        "turnoversForced",
        "pointsOffTurnovers",
        "gameState"
      ],
      "properties": {
        "summary": {
          "type": "string",
          "minLength": 1
        },
        "teamId": {
          "type": "string",
          "minLength": 1
        },
        "actionNumber": {
          "type": "integer",
          "minimum": 0
        },
        "run": {
          "type": "object",
          "required": [
            "teamId",
            "pointsFor",
            "pointsAgainst",
            "unanswered",
            "startActionNumber",
            "lastActionNumber",
            "startScore",
            "endScore",
            "periods"
          ],
          "properties": {
            "teamId": {
              "type": "string",
              "minLength": 1
            },
            "pointsFor": {
              "type": "integer",
              "minimum": 1
            },
            "pointsAgainst": {
              "type": "integer",
              "minimum": 0
            },
            "unanswered": {
              "type": "boolean"
            },
            "startActionNumber": {
              "type": "integer",
              "minimum": 0
            },
            "lastActionNumber": {
              "type": "integer",
              "minimum": 0
            },
            "startScore": {
              "$ref": "#/$defs/runScore"
            },
            "endScore": {
              "$ref": "#/$defs/runScore"
            },
            "periods": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "integer",
                "minimum": 1
              }
            }
          },
          "additionalProperties": false
        },
        "contributors": {
          "type": "array",
          "maxItems": 4,
          "items": {
            "type": "object",
            "required": [
              "playerId",
              "points",
              "assists",
              "steals"
            ],
            "properties": {
              "playerId": {
                "type": "string",
                "minLength": 1
              },
              "points": {
                "type": "integer",
                "minimum": 0
              },
              "assists": {
                "type": "integer",
                "minimum": 0
              },
              "steals": {
                "type": "integer",
                "minimum": 0
              }
            },
            "additionalProperties": false
          }
        },
        "turnoversForced": {
          "type": "integer",
          "minimum": 0
        },
        "pointsOffTurnovers": {
          "type": "integer",
          "minimum": 0
        },
        "answersItemId": {
          "type": "string",
          "minLength": 1
        },
        "gameState": {
          "$ref": "#/$defs/gameState"
        }
      },
      "additionalProperties": false
    },
    "initialGameEntryItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.initial-game-entry-summary"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/initialGameEntryContent"
            }
          }
        }
      ]
    },
    "postGameItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.post-game-summary"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/postGameContent"
            }
          }
        }
      ]
    },
    "preGameItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.pre-game-summary"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/preGameContent"
            }
          }
        }
      ]
    },
    "breakItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.timeout-quarter-halftime-summary"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/breakContent"
            }
          }
        }
      ]
    },
    "playerPerformanceItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.player-performance-summary"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/playerPerformanceContent"
            }
          }
        }
      ]
    },
    "playerPerformanceItemV2": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.player-performance-summary"
            },
            "definitionVersion": {
              "const": 2
            },
            "content": {
              "$ref": "#/$defs/playerPerformanceContentV2"
            }
          }
        }
      ]
    },
    "playerPerformanceItemVersions": {
      "oneOf": [
        {
          "$ref": "#/$defs/playerPerformanceItem"
        },
        {
          "$ref": "#/$defs/playerPerformanceItemV2"
        }
      ]
    },
    "teamPerformanceItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.team-performance-summary"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/teamPerformanceContent"
            }
          }
        }
      ]
    },
    "teamPerformanceItemV2": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.team-performance-summary"
            },
            "definitionVersion": {
              "const": 2
            },
            "content": {
              "$ref": "#/$defs/teamPerformanceContentV2"
            }
          }
        }
      ]
    },
    "teamPerformanceItemVersions": {
      "oneOf": [
        {
          "$ref": "#/$defs/teamPerformanceItem"
        },
        {
          "$ref": "#/$defs/teamPerformanceItemV2"
        }
      ]
    },
    "fourFactorsItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.four-factors"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/fourFactorsContent"
            }
          }
        }
      ]
    },
    "fourFactorsItemV2": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.four-factors"
            },
            "definitionVersion": {
              "const": 2
            },
            "content": {
              "$ref": "#/$defs/fourFactorsContentV2"
            }
          }
        }
      ]
    },
    "fourFactorsItemVersions": {
      "oneOf": [
        {
          "$ref": "#/$defs/fourFactorsItem"
        },
        {
          "$ref": "#/$defs/fourFactorsItemV2"
        }
      ]
    },
    "pointBreakdownItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.point-breakdown"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/pointBreakdownContent"
            }
          }
        }
      ]
    },
    "defensiveItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.defensive-summary"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/defensiveContent"
            }
          }
        }
      ]
    },
    "runMomentumItem": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/contentItem"
        },
        {
          "type": "object",
          "properties": {
            "definitionKey": {
              "const": "nba.run-momentum"
            },
            "definitionVersion": {
              "const": 1
            },
            "content": {
              "$ref": "#/$defs/runMomentumContent"
            }
          }
        }
      ]
    },
    "nbaContentItem": {
      "oneOf": [
        {
          "$ref": "#/$defs/initialGameEntryItem"
        },
        {
          "$ref": "#/$defs/postGameItem"
        },
        {
          "$ref": "#/$defs/preGameItem"
        },
        {
          "$ref": "#/$defs/breakItem"
        },
        {
          "$ref": "#/$defs/playerPerformanceItemVersions"
        },
        {
          "$ref": "#/$defs/teamPerformanceItemVersions"
        },
        {
          "$ref": "#/$defs/fourFactorsItemVersions"
        },
        {
          "$ref": "#/$defs/pointBreakdownItem"
        },
        {
          "$ref": "#/$defs/defensiveItem"
        },
        {
          "$ref": "#/$defs/runMomentumItem"
        }
      ]
    },
    "team": {
      "type": "object",
      "required": [
        "id",
        "name",
        "tricode"
      ],
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1
        },
        "name": {
          "type": "string",
          "minLength": 1
        },
        "tricode": {
          "type": "string",
          "pattern": "^[A-Z]{3}$"
        }
      },
      "additionalProperties": false
    },
    "fixtureIndexEntry": {
      "type": "object",
      "required": [
        "fixtureId",
        "key",
        "label",
        "date",
        "seasonType",
        "awayTeam",
        "homeTeam",
        "firstEventAt",
        "feeds",
        "itemCount"
      ],
      "properties": {
        "fixtureId": {
          "type": "string",
          "minLength": 1
        },
        "key": {
          "type": "string",
          "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
        },
        "label": {
          "description": "Tells games between the same teams apart, for example Finals Game 1; null when the sample game has none.",
          "oneOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "date": {
          "type": "string",
          "format": "date"
        },
        "seasonType": {
          "enum": [
            "Regular Season",
            "Playoffs"
          ]
        },
        "awayTeam": {
          "$ref": "#/$defs/team"
        },
        "homeTeam": {
          "$ref": "#/$defs/team"
        },
        "firstEventAt": {
          "type": "string",
          "format": "date-time"
        },
        "feeds": {
          "type": "array",
          "minItems": 1,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          }
        },
        "itemCount": {
          "type": "integer",
          "minimum": 0
        }
      },
      "additionalProperties": false
    },
    "fixtureIndex": {
      "allOf": [
        {
          "$ref": "content-feed.schema.json#/$defs/fixtureIndex"
        },
        {
          "type": "object",
          "properties": {
            "fixtures": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/fixtureIndexEntry"
              }
            }
          }
        }
      ]
    }
  }
}
