Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Ably American Football Match State V1

Introduction

The document describes the American Football V1 Match state contract and provides examples of using it.
Example Ably LiveAccess URL: https://platform.matchstate.api.geniussports.com/api/v1/sources/GeniusPremium/sports/17/fixtures/10173048/liveaccess?sportApiVersion=v1

American Football Match State

View file
nameV1.json

Section Explanations

1. firstHalf

The firstHalf section contains information about the coin toss results, all drives of the half, timeouts taken by the teams during this half and remaining timeouts for each team.

Code Block
languagejson
{
  "drives": [{}], 
  "timeouts": [{}], 
  "timeoutsRemaining": {}, 
  "coinToss": {} 
}

drives

Contains the array of drives happened in this half of the match.

timeouts

Contains the array of timeouts that either home or away team took during this half

timeoutsRemaining

Contains the number of how many timeouts remained for both home and away teams at this half

coinToss

Contains information about coin toss that happened at the beginning of this half

Use case: It’s the beginning of the match, a coin toss has been completed, a winner team is about to kick the football - all this information is reflected under this “firstHalf” section.

Real example:

View file
namefirstHalf.json

1.1 drives

The drives array contains drive objects that contain information about team who was in possession of that drive, indication was it a kickoff drive or not, list of all plays and conversion plays happened during the drive as well as basic information about the scores and indication if it is a finished drive or not.

Code Block
languagejson
{
  "teamInPossession": "Home", 
  "isKickOff": true, 
  "plays": [{}], 
  "conversionPlays": [{}], 
  "score": [{}], 
  "isFinished": true 
}

teamInPossession

Indicates which team was in possession of this drive. Possible options: [None, Away, Home]

isKickOff

Indicates whether this drive was a kickoff or not

plays

Contains the array of plays happened during this drive

conversionPlays

Contains information about any conversion play happened during this drive

score

Contains the array of scoring events happened during this drive

isFinished

Indicates if this drive has been completed or still ongoing

Use case: Home team gained a possession of the football. They start their 4 attempts to cross the 10 yards. Drive will contain information about all of those attempts until the team either scores or loses the possession of the ball.

Real example:

View file
namedrive.json

1.1.1 plays

The plays array contains play objects that contain general information about the play as well as list of all play actions and list of penalties associated with the play.

Code Block
languagejson
{
  "sequence": 2,
  "downNumber": 1,
  "yardsToGo": 10, 
  "scrimmageLocation": {},
  "snap": {},
  "id": 6,
  "isVoid": false,
  "isConfirmed": true,
  "isFinished": false,
  "period": {},
  "actions": [{}],
  "penalties": [{}],
  "startedAtGameTime": "00:12:43", 
  "endedAtGameTime": "00:12:11", 
  "startedAtUtc": "2021-06-02T20:31:36.955Z", 
  "endedAtUtc": "2021-06-02T20:31:36.955Z",
  "description": "(12:43) K.Cousins pass deep left to A.Thielen to HST 49 for 18 yards (E.Murray).",
  "sourcePlayId": "360"
}

sequence

Indicates the number of attempt team is conducting during the drive

downNumber

Indicates the number of attempt (out of 4) the team to cross the first down line

yardsToGo

Indicates the yards the team has remaining to go till the first down line

scrimmageLocation

Indicates the location of football from where the play is started

snap

Indicates whether the play has been started and the ball has been snapped

id

Play unique identifier

isVoid

Indicates whether the play has been cancelled

isConfirmed

Indicates if the play with all its actions has been confirmed

isFinished

Indicates if the play has ended

period

Contains information which period is it in a match when this play was happening

actions

Contains all the actions that belong to this specific play

penalties

Contains a list of penalties that happened during this specific play

startedAtGameTime

Indicates at what time of the game this play has started

endedAtGameTime

Indicates at what time of the game this play has ended

startedAtUtc

Timestamp indicates the exact time when this play has started

endedAtUtc

Timestamp indicates the exact time when this play has ended

description

Play description

sourcePlayId

Associates this play with a play in NFL feed

Use case: The home team has the possession, snaps the ball and attempts to reach and cross the first down line by rushing through opponents defense.

Real example:

View file
nameplay.json

Relevant information: When a team challenges a play and loses the challenge, they are charged a timeout, in which case the “Description” element will describe the timeout.

1.1.2 conversionPlays

The conversionPlays array contains conversionPlay objects that contain similar information to regular play object, but is used either for one point or two point conversions.

Code Block
{
  "teamInPossession": "Home", 
  "type": "OnePoint", 
  "isVoid": false, 
  "isConfirmed": true, 
  "isFinished": false, 
  "period": {}, 
  "actions": [{}], 
  "penalties": [{}], 
  "startedAtGameTime": "00:07:06", 
  "endedAtGameTime": null, 
  "startedAtUtc": "2021-06-02T20:31:36.955Z", 
  "endedAtUtc": null, 
  "description": "R.Blankenship extra point is GOOD, Center-L.Rhodes, Holder-R.Sanchez.",
  "sourcePlayId": "500"
}

teamInPossession

Indicates which team is in possession of this conversion play

type

Indicates the type of the conversion play. Available options: [Unknown, OnePoint, TwoPoints]

isVoid

Indicates whether this conversion play has been cancelled

isConfirmed

Indicates if the conversion play with all its actions has been confirmed

isFinished

Indicates if the conversion play has ended

period

Contains information which period is it in a match when this conversion play was happening

actions

Contains all the actions that belong to this specific conversion play

penalties

Contains a list of penalties that happened during this specific conversion play

startedAtGameTime

Indicates at what time of the game this conversion play has started

endedAtGameTime

Indicates at what time of the game this conversion play has ended

startedAtUtc

Timestamp indicates the exact time when this conversion play has started

endedAtUtc

Timestamp indicates the exact time when this conversion play has ended

description

Conversion play description

sourcePlayId

Associates this play with a play in NFL feed

Use case: The home team scored a touchdown. They have the possession for the conversion play and they are attempting an extra point kick.

Real example:

View file
nameconversionPlay.json

1.1.3 score

The score array contains score object that contains information about how the score was gained, which team scored, how many points and period when it happened.

Code Block
languagejson
{
	"period": {
		"number": 1,
		"type": "Regular"
	},
	"type": "Touchdown",
	"team": "Away",
	"points": 6,
	"isConfirmed": true,
	"utcTimestamp": "2022-05-19T19:23:09.6933189Z"
}

period

Contains information about the period this scoring action happened

type

Indicates the type of the scoring play. Available options: [Touchdown, OnePointConversion, TwoPointConversion, FieldGoal, Safety, OnePointSafety, Single (only available for CFL)]

team

Indicates the team who scored. Available options: [None, Home, Away]

points

Indicates how many points the team gained

isConfirmed

Indicates if it is confirmed or not

utcTimestamp

Timestamp indicates the exact time of this scoring action

Use case: A home team has scored a touchdown and successfully made an extra point in a conversion play.

1.1.4 scrimmageLocation

The scrimmageLocation section contains basic information about the line of scrimmage.

Code Block
{
  "scrimmageYard": 30,
  "sideOfPitch", "Home"
}

scrimmageYard

Indicates the yard line where the football is placed at the start of the play

sideOfPitch

Indicates side of the yard. Available options: [None, Home, Away]

Use case: A ball for the play will be placed on 30 yards line of home team side.

1.1.5 snap

The snap section contains basic information about the snap action - time when it happened and whether it’s confirmed.

Code Block
{
	"isConfirmed": true,
	"timestampUtc": "2020-10-11T22:07:32Z"
}

Use case: A scout notes that the ball has been snapped.

1.1.6 period

The period section contains basic information about the period number and if it’s a regular period or an overtime. Here period is for the specific play - in which period the specific play happened.

Code Block
{
  "number": 2,
  "type": "Regular"
}

number

Indicates the number of the quarter

type

Indicates whether this period is during a regular time or an overtime. Available options: [Regular, Overtime]

Use case: This specific play happens in the 2nd quarter of the regular game time.

1.1.7 actions

The actions array contains action objects that contain information about specific action of the play - which team made the action, what kind of action was it, players involved.

Code Block
{
	"sequence": 1,
	"team": "Away",
	"type": "Run",
	"players": [
		{
			"playerType": "Runner",
			"id": "121463"
		}
	],
	"yards": -1,
	"isNullified": false,
	"activeUnits": {
		"home": "Unknown",
		"away": "Unknown"
	}
},
{
	"sequence": 2,
	"team": "Home",
	"type": "Tackle",
	"players": [],
	"yards": null,
	"isNullified": false,
	"activeUnits": {
		"home": "Unknown",
		"away": "Unknown"
	}
}

sequence

Indicates the sequence of actions within the play

team

Indicates which team made that action

type

Indicates the type of action. Available options: [Kickoff, Touchback, FairCatch, Run, Tackle, Sack, OutOfBounds, PassAttempt, CompletePass, IncompletePass, Interception, Punt, Fumble, Return, Safety, Touchdown, FieldGoalAttempt, FieldGoalMade, FieldGoalMissed, ConversionAttempt, ConversionMade, ConversionMissed, OnePointSafety, Single (only available for CFL)]

yards

Indicates the amount of yards gained or lost (it’s shown or not depending on the action).

isNullified

Indicates whether this action was nullified (for example by penalty)

activeUnits

Currently not provided.

Use case: A player from away team decided to run and was tackled 1 yard behind line of scrimmage.

1.1.8 penalties

The penalties array contains penalty objects that contain information about the given penalty - which team got the penalty, which player, what kind of penalty and penalty yards. Penalties are per play.

Code Block
{
	"team": "Home",
	"playerId": "719522",
	"type": "DefensiveOffside",
	"outcome": "Accepted",
	"yards": 5,
	"activeUnits": {
		"home": "Unknown",
		"away": "Unknown"
	},
	"utcTimestamp": "2022-05-19T20:40:48.8290673Z"
}

team

Indicates which team was charged with the penalty

playerId

Indicates which player was charged with penalty

type

Indicates type of the penalty. Available options: [Unknown, OffensiveHolding, FalseStart, DefensivePassInterference, OffensivePassInterference, DefensiveHolding, UnnecessaryRoughness, DefensiveOffside, DelayOfGame, IllegalBlockAboveTheWaist, NeutralZoneInfraction, FaceMask, IllegalUseOfHands, RoughingThePasser, UnsportsmanlikeConduct, IllegalFormation, Encroachment, IllegalContact, Defensive12OnField, IllegalShift, IntentionalGrounding, Taunting, OffsideOnFreeKick, IneligibleDownfieldPass, HorseCollarTackle, Leverage, RoughingTheKicker, IllegalMotion, ChopBlock, IllegalTouchKick, RunningIntoTheKicker, Disqualification, InterferenceWithOpportunityToCatch, Offensive12OnField, PlayerOutOfBoundsOnPunt, IllegalSubstitution, OffensiveOffside, IllegalTouchPass, FairCatchInterference, Clipping, IllegalForwardPass, IllegalBlindsideBlock, Tripping, Leaping, IneligibleDownfieldKick, InvalidFairCatchSignal, IllegalCrackback, LowBlock, DelayOfKickoff, DefensiveDelayOfGame, IllegalBat, IllegallyKickingBall, KickoffOutOfBounds]

outcome

Indicates the outcome of the penalty. Available options: [Unknown, Accepted, Declined, Offsetting, Superseded]

yards

Indicates penalty yards

activeUnits

Currently not provided

utcTimestamp

Timestamp of the penalty

Use case: Home team was charged with the penalty “Defensive Offside” that they accepted. Home team was penalized of 5 yards.

1.1.9 players

The players array contains player object that contains basic information about the player.

Code Block
{
  "playerType": "Tackler",
  "id": "1003063"
}

playerType

Indicates the type of the player. Available options: [Unknown, Tackled, Tackler, Scorer, Assist, Receiver, Passer, OutOfBounds, Fumbled, Fumbler, Recoverer, Kicker, Runner, Returner]

id

Indicates an id of the to which this player is mapped

Use case: Player who specified as a “Tackler“ in an “OutOfBounds” action had an id of “1003063".

1.1.10 activeUnits

The activeUnits section contains information about what kind of players were involved on the field - defense, offense or special team.

Code Block
{
  "home": "Offensive",
  "away": "Defensive"
}

Currently not available.

1.2 timeouts

The timeouts array contains timeout objects that contain general information about each timeout taken during the half of the match.

Code Block
languagejson
{
	"team": "Away",
	"gameTime": "00:02:35",
	"period": {
		"number": 4,
		"type": "Regular"
	},
	"utcTimestamp": "2022-05-19T21:48:01.7258484Z",
	"isConfirmed": true
}

team

Indicates which team took the timeout

gameTime

Indicates game time at what the timeout was taken

period

Indicates the period when the timeout was taken

utcTimestamp

Timestamp indicates exact time of the timeout

isConfirmed

Indicates is timeout has been officially confirmed

Use case: A timeout was taken by the away team at 4th quarter of the regular match time when clock was showing 2 minutes and 35 seconds left.

1.3 timeoutsRemaining

The timeoutsRemaining section contains basic information - how many timeouts are remaining for each team in the half.

Code Block
languagejson
			{
				"away": 2,
				"home": 1
			}

away

Indicates how many timeouts are left for the away team in the half

home

Indicates how many timeouts are left for the home team in the half

Use case: In this half away team has 2 timeouts remaining whereas home team has 1.

1.4 coinToss

The coinToss section contains information about the outcome of coin toss in the beginning of each half.

Code Block
languagejson
{
	"winnerTeam": "Away",
	"wasDeferred": true,
	"awayChoice": "WestEndZone",
	"homeChoice": "Receive"
}

winnerTeam

Indicates the team who won the coin toss

wasDeferred

Indicates whether the winner team decided to defer or not

awayChoice

Indicates the away team choice. Available options: [Kick, Receive, EndZone, NorthEndZone, EastEndZone, SouthEndZone, WestEndZone]

homeChoice

Indicates the home team choice. Available options: [Kick, Receive, EndZone, NorthEndZone, EastEndZone, SouthEndZone, WestEndZone]

Use case: Away team won the coin toss and decided to defer. They chose the west end zone for kicking whereas home team chose to receive the ball after the kick.

2. secondHalf

The secondHalf section is identical to the firstHalf section structure described above.

3. overtimePeriods

The overtimePeriods array contains overtimePeriod objects that contain information about each overtime. It has identical structure to halfs with one exception - in addition it has “period” property.

Code Block
languagejson
{
  "period": 1,
  "drives": [{}],
  "timeouts": [{}],
  "timeoutsRemaining": {},
  "coinToss": {}
}

period

Indicates which overtime period it is

drives

Contains the array of drives happened in this overtime

timeouts

Contains the array of timeouts that either home or away team took during this overtime period

timeoutsRemaining

Contains the number of how many timeouts remained for both home and away teams at this overtime period

coinToss

Contains information about coin toss that happened at the beginning of overtime period

Use case: There were no winning team during the regular match time hence game moved into the overtime.

4. challenges

The challenges array contains challenge objects that contain general information about challenge - which team challenged, when and what was the result.

Code Block
{
  "team": "Away",
  "gameTime": "00:11:04,
  "period": {},
  "utcTimestamp": "2021-06-02T20:31:36.956Z",
  "result": "Lost"
}

team

Indicates the team whose coach initiated the challenge

gameTime

Indicates the game time when the challenge was initiated

period

Indicates the period in which the challenge was initiated

utcTimestamp

Timestamp of the challenge

result

Indicates the result of the challenge. Available options: [Unknown, Won, Lost]

Use case: Head coach of away team initiated a challenge when remaining time was 11 minutes and 4 seconds and lost it.

5. gameTime

The gameTime section contains information about the game clock - what’s the clock value, when was it last updated and is it running at the moment.

Code Block
{
  "clock": "00:04:11",
  "lastUpdatedUtc": "2021-06-02T20:31:36.956Z",
  "isRunning": true
}

clock

Reflects the game clock

lastUpdatedUtc

Timestamp of the latest game clock value update

isRunning

Indicates whether or not the game clock is running

Use case: Game clock of the match is showing 4 minutes and 11 seconds left. Clock is still running.

6. matchStatus

The matchStatus property reflects the current match status.

code

"matchStatus": "InProgress"

matchStatus

Indicates the overall match status. Available options: [Unknown, NotStarted, Warmup, InProgress, Postponed, Finished, Interrupted, CoverageStopped, Abandoned, Cancelled, Delayed]

Use case: The match is currently in progress.

Important: Match State messages are not published with every second elapsed on the clock. New Match State message is only published if IsRunning flag in gameTime is updated from true to false or vice versa. Match State is also published if there is an adjustment of the clock value even if isRunning is not updated. Multiple MatchState messages published in a row are expected to have the same values of clock, lastUpdatedUtc and isRunning in gameTime in case the clock keeps ticking down. In order to calculate current clock value shown on the scoreboard when clock is running, you need to subtract lastUpdatedUtc from messageTimestampUtc and then to use the result to subtract from clock value.

6. matchStatus

The matchStatus property reflects the current match status.

Code Block
"matchStatus": "InProgress"

matchStatus

Indicates the overall match status. Available options: [Unknown, NotStarted, Warmup, InProgress, Postponed, Finished, Interrupted, CoverageStopped, Abandoned, Cancelled, Delayed]

Use case: The match is currently in progress.

7. period

The period section contains basic information about the period number and if it’s a regular period or an overtime. This period section reflects the current period in the match.

Code Block
{
  "number": 3,
  "type": "Regular"
}

number

Indicates the number of the quarter

type

Indicates whether this period is during a regular time or an overtime. Available options: [Regular, Overtime]

Use case: The match is now in the 3rd quarter of the regular game time.

8. periodWithStatus

The periodWithStatus section contains basic information about the current situation with the match - current period number and if it’s a regular period or an overtime and its status.

Code Block
 "periodWithStatus": {
        "status": "Finished",
        "isConfirmed": true,
        "number": 4,
        "type": "Regular"
    },

status

Indicates the status of the period. Available options: [NotStarted, InProgress, Finished]

isConfirmed

Indicates if it is confirmed or not

number

Indicates the number of the quarter

type

Indicates whether this period is during a regular time or an overtime. Available options: [Regular, Overtime]

Use case: A match happens in the 4th quarter of the regular game time and has finished. Note: Period with status is available in one place for the whole match state.

9. score

The score section contains information about the latest score of the whole match.

Code Block
{
  "home": 13,
  "away": 20,
  "isConfirmed": true
}

home

Indicates how many points has the home team scored in the whole match

away

Indicates how many points has the away team scored in the whole match

isConfirmed

Indicates whether or not these scores of the teams are confirmed

Use case: Home team has scored 13 points and away team has scored 20 points in the match so far. These scores are confirmed.

10. homeTeam/awayTeam sections

The homeTeam and awayTeam sections contain list of players who are playing as part of offensive, defensive or special teams in the match.

Code Block
{
  "offensive": [{}],
  "defensive": [{}],
  "special": [{}]
}

offensive

Contains the list of offensive players for either home or away team

defensive

Contains the list of defensive players for either home or away team

special

Contains the list of special players for either home or away team

Real example:

View file
namehomeTeam.json

10.1 offensive/defensive/special sub-sections

The offensive/defensive/special arrays contain lineupPlayer object that contains information about the players (lineup) - player id, position he is playing and side.

Code Block
{
	"id": "1014100",
	"name": null,
	"position": "RunningBack",
	"side": "Middle"
}

id

Indicates an id of the to which this player is mapped

name

This field will not be generated and will always display the null value

position

Indicates the position of the player. Available options: [Unknown, Kicker, Punter, Returner, RunningBack, Fullback, WideReceiver, TightEnd, Tackle, Guard, Quarterback, Center, End, Linebacker, Cornerback, Safety, Holder]

side

Indicates the side of the player. Available options: [Unknown, Right, Middle, Left]

Use case: 1014100 is part of the home team defensive lineup players. His position is running back and his side is middle.

Player name corresponding to the player id can be acquired from the Fixture API.

11. comments

The comments section contains comment objects that contain the text of comment and time when it was entered.

Code Block
{
  "value": "Tv timeout",
  "utcTimestamp": "2021-06-02T20:31:36.956Z"
}

value

Comment itself

utcTimestamp

Timestamp indicates when comment was entered

Use case: There was a TV timeout.

12. currentPossession

The currentPossession section contains information about the team which is in possession and time when it was last updated.

Code Block
{
  "value": "Home",
  "utcTimestamp": "2022-05-19T20:31:36.956Z"
}

value

Indicates which team has the possession currently in the match

utcTimestamp

Timestamp indicates when the possession in the match has changed

Use case: The possession of the match now belongs to home team.

13. yardsToEndzone

The yardsToEndzone section contains information about how many yards are from team’s endzone and when this information was last updated.

Code Block
{
	"yards": 59,
	"team": "Away",
	"lastUpdatedUtc": "2022-05-19T22:04:26.2280028Z",
	"isConfirmed": false
}

yards

Indicates how many yards are left for the team to reach opponent’s endzone

team

Indicates the team who is in possession and needs to reach opponents endzone

lastUpdatedUtc

Timestamp indicates when this information has been updated

isConfirmed

Indicates whether the information is confirmed or not

Use case: Away team is in possession and has 59 yards left to opponents endzone.

14. risks

The risks section contains a list of risks that are important to consider (significant events) for betting purposes.

Code Block
languagejson
{
  "touchdown": "NonActive",
  "onsideKick": "NonActive",
  "fieldGoal": "Active",
  "fourthDown": "NonActive",
  "safety": "NonActive",
  "challenge": "NonActive",
  "penalty": "NonActive",
  "videoReview": "NonActive",
  "turnover": "NonActive",
  "other": "NonActive"
}

touchdown

Indicates whether risk of touchdown is active or not. Available options: [Unknown, Active, NonActive]

onsideKick

Indicates whether risk of onside kick is active or not. Available options: [Unknown, Active, NonActive]

fieldGoal

Indicates whether risk of fieldgoal is active or not. Available options: [Unknown, Active, NonActive]

fourthDown

Indicates whether risk of 4th down is active or not. Available options: [Unknown, Active, NonActive]

safety

Indicates whether risk of safety is active or not. Available options: [Unknown, Active, NonActive]

challenge

Indicates whether risk of challenge is active or not. Available options: [Unknown, Active, NonActive]

penalty

Indicates whether risk of penalty is active or not. Available options: [Unknown, Active, NonActive]

videoReview

Indicates whether risk of video review is active or not. Available options: [Unknown, Active, NonActive]

turnover

Indicates whether risk of turnover is active or not. Available options: [Unknown, Active, NonActive]

other

Indicates whether any other risk is active or not. Available options: [Unknown, Active, NonActive]

Use case: In this moment of the match there’s an active risk that the Field Goal will be scored.

15. isPlayUnderReview

isPlayUnderReview property describes if the current play is under review.

Code Block
"isPlayUnderReview": true

isPlayUnderReview

Indicates whether the current play is under review or not

Use case: Current play is under review.

16. nextPlay

Describes precise enough details of what would be the characteristics of the next play, before it is actually created

Code Block
languagejson
{
	"type": "Snap",
	"scrimmageLocation": {
		"scrimmageYard": 41,
		"sideOfPitch": "Away"
	},
	"downNumber": 1,
	"yardsToGo": 10,
	"isConfirmed": true
}

type

Indicates the next play type. Available options: [Kickoff, Snap, Pat]

scrimmageLocation

Indicates where the football will be located (line of scrimmage)

downNumber

Indicates the down number for upcoming play

yardsToGo

Indicates the yards to go in the next play

isConfirmed

Indicates if information about next play is confirmed or not

Use case: Next play potentially will be a Snap play from 41 yard line on away team’s side. It will be the 1st attempt to get through first down line (10 yards).

17. source

The source property describes the source that is providing the feed for Match State. For NFL the following options are available - GeniusPremium, GeniusPremiumReplay,

Code Block
"source": "GeniusPremium"

source

Indicates the source of this match state.

Use case: Current play is under review.

18. fixtureId

The fixtureId property indicates the id of the mapped source fixture to Genius Sports fixture.

Code Block
"fixtureId": "1234567"

fixtureId

Indicates the mapped Genius Sports fixture id

Use case: Id of this fixture (match).

19. sequence

The sequence property indicates

Code Block
"sequence": 12345

sequence

Indicates the sequence number of the feed match events

Use case: Sequence of the latest feed match event.

20. messageTimestampUtc

The messageTimestampUtc property indicates the exact time of this match state message.

Code Block
"messageTimestampUtc": "2021-06-02T20:31:36.956Z"

messageTimestampUtc

Timestamp of the latest update to match state

Use case: Time when match state was last updated.

21. isReliable

The isReliable property is used to note whether the given match state is reliable or not. This property is a result of the reliabilityReasons statuses.

Reliability is used to indicate that some of the information within the message may be inaccurate and it should not be relied on for purposes where message accuracy is critical.

Code Block
"isReliable": true

isReliable

Indicates whether the current match state is reliable or not

Use case: Current match state is reliable.

22. isCoverageCancelled

The isCoverageCancelled property is used to note whether the coverage of this match has been cancelled or not.

Code Block
"isCoverageCancelled": false

isCoverageCancelled

Indicates whether the coverage for this particular match has been cancelled or not

Use case: Coverage for this match has not been cancelled.

23. reliabilityReasons

The reliabilityReasons section contains a list of items considered in order to make an automatic decision whether the match state is reliable or not.

Code Block
languagejson
{
  "Heartbeat": "Heartbeat Lost",
  "FeedReliability": "Feed is reliable",
  "Coverage": "Coverage Unknown"
}

Heartbeat

Short description of heartbeat status

FeedReliability

Short description of feed reliability status

Coverage

Short description of the coverage for this match

Use case: The heartbeat for the current match state has been lost, feed is considered reliable and the coverage is unknown.

Schema definitions

Swagger integration
operationsSorteralpha
tagsSorteralpha
{
	"openapi": "3.0.1",
	"info": {
		"title": "Match State API for American Football",
		"version": "1.0"
	},
	"components": {
		"schemas": {
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.ActionType": {
				"enum": [
					"Kickoff",
					"Touchback",
					"FairCatch",
					"Run",
					"Tackle",
					"Sack",
					"OutOfBounds",
					"PassAttempt",
					"CompletePass",
					"IncompletePass",
					"Interception",
					"Punt",
					"Fumble",
					"Return",
					"Safety",
					"Touchdown",
					"FieldGoalAttempt",
					"FieldGoalMade",
					"FieldGoalMissed",
					"ConversionAttempt",
					"ConversionMade",
					"ConversionMissed",
					"OnePointSafety"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.ActiveUnits": {
				"type": "object",
				"properties": {
					"home": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Unit"
					},
					"away": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Unit"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.AmericanFootballMatchState": {
				"type": "object",
				"properties": {
					"firstHalf": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Half"
					},
					"secondHalf": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Half"
					},
					"overtimePeriods": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Overtime"
						},
						"nullable": true
					},
					"challenges": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Challenge"
						},
						"nullable": true
					},
					"gameTime": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.GameTime"
					},
					"playClock": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.GameTime"
					},
					"matchStatus": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.MatchStatus"
					},
					"period": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Period"
					},
					"periodWithStatus": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PeriodWithStatus"
					},
					"score": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Score"
					},
					"homeTeam": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Team"
					},
					"awayTeam": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Team"
					},
					"comments": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Comment"
						},
						"nullable": true
					},
					"currentPossession": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.CurrentPossession"
					},
					"yardsToEndzone": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.YardsToEndzone"
					},
					"risks": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Risks"
					},
					"isPlayUnderReview": {
						"type": "boolean",
						"nullable": true
					},
					"nextPlay": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.NextPlay"
					},
					"source": {
						"type": "string",
						"nullable": true
					},
					"fixtureId": {
						"type": "string",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"messageTimestampUtc": {
						"type": "string",
						"format": "date-time"
					},
					"isReliable": {
						"type": "boolean"
					},
					"isCoverageCancelled": {
						"type": "boolean"
					},
					"reliabilityReasons": {
						"type": "object",
						"properties": {
							"Heartbeat": {
								"type": "string"
							},
							"FeedReliability": {
								"type": "string"
							},
							"Coverage": {
								"type": "string"
							}
						},
						"additionalProperties": false,
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Challenge": {
				"type": "object",
				"properties": {
					"team": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"gameTime": {
						"type": "string",
						"format": "date-span"
					},
					"period": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Period"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					},
					"result": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ChallengeResult"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.ChallengeResult": {
				"enum": [
					"Unknown",
					"Won",
					"Lost"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.CoinToss": {
				"type": "object",
				"properties": {
					"winnerTeam": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"wasDeferred": {
						"type": "boolean",
						"nullable": true
					},
					"awayChoice": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.CoinTossChoice"
					},
					"homeChoice": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.CoinTossChoice"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.CoinTossChoice": {
				"enum": [
					"Kick",
					"Receive",
					"EndZone",
					"NorthEndZone",
					"EastEndZone",
					"SouthEndZone",
					"WestEndZone"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Comment": {
				"type": "object",
				"properties": {
					"value": {
						"type": "string",
						"nullable": true
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.ConversionPlay": {
				"type": "object",
				"properties": {
					"teamInPossession": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"type": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ConversionType"
					},
					"isVoid": {
						"type": "boolean"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"isFinished": {
						"type": "boolean"
					},
					"period": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Period"
					},
					"actions": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayAction"
						},
						"nullable": true
					},
					"penalties": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Penalty"
						},
						"nullable": true
					},
					"startedAtGameTime": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endedAtGameTime": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"startedAtUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endedAtUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.ConversionType": {
				"enum": [
					"Unknown",
					"OnePoint",
					"TwoPoints"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.CurrentPossession": {
				"type": "object",
				"properties": {
					"team": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"lastUpdatedUtc": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Drive": {
				"type": "object",
				"properties": {
					"teamInPossession": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"isKickOff": {
						"type": "boolean",
						"nullable": true
					},
					"plays": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Play"
						},
						"nullable": true
					},
					"conversionPlays": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ConversionPlay"
						},
						"nullable": true
					},
					"score": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ScoreInfo"
						},
						"nullable": true
					},
					"isFinished": {
						"type": "boolean"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.GameTime": {
				"type": "object",
				"properties": {
					"clock": {
						"type": "string",
						"format": "date-span"
					},
					"lastUpdatedUtc": {
						"type": "string",
						"format": "date-time"
					},
					"isRunning": {
						"type": "boolean"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Half": {
				"type": "object",
				"properties": {
					"drives": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Drive"
						},
						"nullable": true
					},
					"timeouts": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TimeOut"
						},
						"nullable": true
					},
					"timeoutsRemaining": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TimeoutsRemaining"
					},
					"coinToss": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.CoinToss"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.LineupPlayer": {
				"type": "object",
				"properties": {
					"id": {
						"type": "string",
						"nullable": true
					},
					"name": {
						"type": "string",
						"nullable": true
					},
					"position": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayerPosition"
					},
					"side": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PositionSide"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.MatchStatus": {
				"enum": [
					"Unknown",
					"NotStarted",
					"Warmup",
					"InProgress",
					"Postponed",
					"Finished",
					"Interrupted",
					"CoverageStopped",
					"Abandoned",
					"Cancelled",
					"Delayed"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.NextPlay": {
				"type": "object",
				"properties": {
					"type": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayType"
					},
					"scrimmageLocation": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ScrimmageLocation"
					},
					"downNumber": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardsToGo": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isConfirmed": {
						"type": "boolean"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Overtime": {
				"type": "object",
				"properties": {
					"period": {
						"type": "integer",
						"format": "int32"
					},
					"drives": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Drive"
						},
						"nullable": true
					},
					"timeouts": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TimeOut"
						},
						"nullable": true
					},
					"timeoutsRemaining": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TimeoutsRemaining"
					},
					"coinToss": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.CoinToss"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Penalty": {
				"type": "object",
				"properties": {
					"team": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"playerId": {
						"type": "string",
						"nullable": true
					},
					"type": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PenaltyType"
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"activeUnits": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ActiveUnits"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PenaltyType": {
				"enum": [
					"Unknown",
					"OffensiveHolding",
					"FalseStart",
					"DefensivePassInterference",
					"OffensivePassInterference",
					"DefensiveHolding",
					"UnnecessaryRoughness",
					"DefensiveOffside",
					"DelayOfGame",
					"IllegalBlockAboveTheWaist",
					"NeutralZoneInfraction",
					"FaceMask",
					"IllegalUseOfHands",
					"RoughingThePasser",
					"UnsportsmanlikeConduct",
					"IllegalFormation",
					"Encroachment",
					"IllegalContact",
					"Defensive12OnField",
					"IllegalShift",
					"IntentionalGrounding",
					"Taunting",
					"OffsideOnFreeKick",
					"IneligibleDownfieldPass",
					"HorseCollarTackle",
					"Leverage",
					"RoughingTheKicker",
					"IllegalMotion",
					"ChopBlock",
					"IllegalTouchKick",
					"RunningIntoTheKicker",
					"Disqualification",
					"InterferenceWithOpportunityToCatch",
					"Offensive12OnField",
					"PlayerOutOfBoundsOnPunt",
					"IllegalSubstitution",
					"OffensiveOffside",
					"IllegalTouchPass",
					"FairCatchInterference",
					"Clipping",
					"IllegalForwardPass",
					"IllegalBlindsideBlock",
					"Tripping",
					"Leaping",
					"IneligibleDownfieldKick",
					"InvalidFairCatchSignal",
					"IllegalCrackback",
					"LowBlock",
					"DelayOfKickoff",
					"DefensiveDelayOfGame",
					"IllegalBat",
					"IllegallyKickingBall",
					"KickoffOutOfBounds"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Period": {
				"type": "object",
				"properties": {
					"number": {
						"type": "integer",
						"format": "int32"
					},
					"type": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PeriodType"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PeriodStatus": {
				"enum": [
					"NotStarted",
					"InProgress",
					"Finished"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PeriodType": {
				"enum": [
					"Regular",
					"Overtime"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PeriodWithStatus": {
				"type": "object",
				"properties": {
					"status": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PeriodStatus"
					},
					"number": {
						"type": "integer",
						"format": "int32"
					},
					"type": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PeriodType"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Play": {
				"type": "object",
				"properties": {
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"downNumber": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardsToGo": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"scrimmageLocation": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ScrimmageLocation"
					},
					"snap": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Snap"
					},
					"isVoid": {
						"type": "boolean"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"isFinished": {
						"type": "boolean"
					},
					"period": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Period"
					},
					"actions": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayAction"
						},
						"nullable": true
					},
					"penalties": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Penalty"
						},
						"nullable": true
					},
					"startedAtGameTime": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endedAtGameTime": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"startedAtUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endedAtUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayAction": {
				"type": "object",
				"properties": {
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"team": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"type": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ActionType"
					},
					"players": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Player"
						},
						"nullable": true
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isNullified": {
						"type": "boolean",
						"nullable": true
					},
					"activeUnits": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ActiveUnits"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Player": {
				"type": "object",
				"properties": {
					"playerType": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayerType"
					},
					"id": {
						"type": "string",
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayerPosition": {
				"enum": [
					"Unknown",
					"Kicker",
					"Punter",
					"Returner",
					"RunningBack",
					"Fullback",
					"WideReceiver",
					"TightEnd",
					"Tackle",
					"Guard",
					"Quarterback",
					"Center",
					"End",
					"Linebacker",
					"Cornerback",
					"Safety",
					"Holder"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayerType": {
				"enum": [
					"Unknown",
					"Tackled",
					"Tackler",
					"Scorer",
					"Assist",
					"Receiver",
					"Passer",
					"OutOfBounds",
					"Fumbled",
					"Fumbler",
					"Recoverer",
					"Kicker",
					"Runner",
					"Returner"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PlayType": {
				"enum": [
					"Kickoff",
					"Snap",
					"Pat"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.PositionSide": {
				"enum": [
					"Unknown",
					"Right",
					"Middle",
					"Left"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Risks": {
				"type": "object",
				"properties": {
					"touchdown": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"onsideKick": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"fieldGoal": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"fourthDown": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"safety": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"challenge": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"penalty": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"videoReview": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"turnover": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					},
					"other": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.RiskStatus": {
				"enum": [
					"Unknown",
					"Active",
					"NonActive"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Score": {
				"type": "object",
				"properties": {
					"home": {
						"type": "integer",
						"format": "int32"
					},
					"away": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.ScoreInfo": {
				"type": "object",
				"properties": {
					"period": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Period"
					},
					"type": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.ScoreType"
					},
					"team": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"points": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.ScoreType": {
				"enum": [
					"Touchdown",
					"OnePointConversion",
					"TwoPointConversion",
					"FieldGoal",
					"Safety",
					"OnePointSafety"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.ScrimmageLocation": {
				"type": "object",
				"properties": {
					"scrimmageYard": {
						"type": "integer",
						"format": "int32"
					},
					"sideOfPitch": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Snap": {
				"type": "object",
				"properties": {
					"isConfirmed": {
						"type": "boolean"
					},
					"timestampUtc": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Team": {
				"type": "object",
				"properties": {
					"offensive": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.LineupPlayer"
						},
						"nullable": true
					},
					"defensive": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.LineupPlayer"
						},
						"nullable": true
					},
					"special": {
						"type": "array",
						"items": {
							"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.LineupPlayer"
						},
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide": {
				"enum": [
					"None",
					"Home",
					"Away"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.TimeOut": {
				"type": "object",
				"properties": {
					"team": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"gameTime": {
						"type": "string",
						"format": "date-span"
					},
					"period": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.Period"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					},
					"isConfirmed": {
						"type": "boolean"
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.TimeoutsRemaining": {
				"type": "object",
				"properties": {
					"away": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"home": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.Unit": {
				"enum": [
					"Unknown",
					"Defensive",
					"Offensive",
					"Special"
				],
				"type": "string"
			},
			"Betgenius.Sports.AmericanFootball.Contracts.MatchState.YardsToEndzone": {
				"type": "object",
				"properties": {
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"team": {
						"$ref": "#/components/schemas/Betgenius.Sports.AmericanFootball.Contracts.MatchState.TeamSide"
					},
					"lastUpdatedUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"isConfirmed": {
						"type": "boolean",
						"nullable": true
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ActionCancel": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Clock": {
				"required": [
					"clockTime",
					"isRunning"
				],
				"type": "object",
				"properties": {
					"isRunning": {
						"type": "boolean"
					},
					"clockTime": {
						"type": "string",
						"format": "date-span"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CoinToss.CoinTossAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"period": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.Period"
					},
					"winnerTeamId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"wasDeferred": {
						"type": "boolean",
						"nullable": true
					},
					"homeTeamChoice": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CoinToss.CoinTossChoice"
					},
					"awayTeamChoice": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CoinToss.CoinTossChoice"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CoinToss.CoinTossActionUpdate": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"winnerTeamId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"wasDeferred": {
						"type": "boolean",
						"nullable": true
					},
					"homeTeamChoice": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CoinToss.CoinTossChoice"
					},
					"awayTeamChoice": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CoinToss.CoinTossChoice"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CoinToss.CoinTossChoice": {
				"enum": [
					"Kick",
					"Receive",
					"EndZone",
					"NorthEndZone",
					"EastEndZone",
					"SouthEndZone",
					"WestEndZone"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CommentAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"text": {
						"type": "string",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.CurrentPossessionAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.DeadBall.DeadBallAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"recoveredBy": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ExtraPoint.ExtraPointAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playActionId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"result": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ScoringResult"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ExtraPoint.ExtraPointUpdateAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"result": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ScoringResult"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.FairCatch.FairCatchAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"receiver": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.FieldGoal.FieldGoalAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playActionId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"result": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ScoringResult"
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.FieldGoal.FieldGoalUpdateAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"result": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ScoringResult"
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Fumble.FumbleAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardLine": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.GameTimeAction": {
				"required": [
					"gameClock",
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"gameClock": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Clock"
					},
					"playClock": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Clock"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.KickOff.KickoffAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.MatchStatus": {
				"enum": [
					"Unknown",
					"NotStarted",
					"Warmup",
					"InProgress",
					"Postponed",
					"Finished",
					"Interrupted",
					"CoverageStopped",
					"Abandoned",
					"Cancelled",
					"Delayed"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.MatchStatusAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"matchStatus": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.MatchStatus"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.NextPlay.NextPlayAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"type": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.PlayType"
					},
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"downNumber": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardsToGo": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.OutOfBounds.OutOfBoundsAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"tackledBy": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Pass.Direction": {
				"enum": [
					"Left",
					"Middle",
					"Right"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Pass.PassAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"direction": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Pass.Direction"
					},
					"result": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Pass.PassResult"
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Pass.PassResult": {
				"enum": [
					"Complete",
					"Incomplete",
					"Intercepted",
					"Spike"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.Period": {
				"required": [
					"number",
					"type"
				],
				"type": "object",
				"properties": {
					"number": {
						"type": "integer",
						"format": "int32"
					},
					"type": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.PeriodType"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.PeriodAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"number": {
						"type": "integer",
						"format": "int32"
					},
					"type": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.PeriodType"
					},
					"status": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.PeriodStatus"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.PeriodStatus": {
				"enum": [
					"NotStarted",
					"InProgress",
					"Finished"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.PeriodType": {
				"enum": [
					"Regular",
					"Overtime"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.KickoffPlayAction": {
				"required": [
					"isConfirmed",
					"period",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"period": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.Period"
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"isFinished": {
						"type": "boolean"
					},
					"startTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"startGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.KickoffPlayUpdateAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"isFinished": {
						"type": "boolean"
					},
					"startTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"startGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.PatPlayAction": {
				"required": [
					"isConfirmed",
					"period",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"period": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.Period"
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"isFinished": {
						"type": "boolean"
					},
					"startTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"startGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.PatPlayUpdateAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"isFinished": {
						"type": "boolean"
					},
					"startTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"startGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.PlayAction": {
				"required": [
					"isConfirmed",
					"period",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"period": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.Period"
					},
					"type": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.PlayType"
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"downNumber": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardsToGo": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isFinished": {
						"type": "boolean"
					},
					"startTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"startGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.PlayActionUpdate": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"type": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.PlayType"
					},
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"downNumber": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardsToGo": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isFinished": {
						"type": "boolean"
					},
					"startTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"startGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.PlayType": {
				"enum": [
					"Snap",
					"Kickoff",
					"Pat"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.SnapPlayAction": {
				"required": [
					"isConfirmed",
					"period",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"period": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.Period"
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"downNumber": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardsToGo": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isFinished": {
						"type": "boolean"
					},
					"startTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"startGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Play.SnapPlayUpdateAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"lineOfScrimmage": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"downNumber": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardsToGo": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isFinished": {
						"type": "boolean"
					},
					"startTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"startGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"endTimeUtc": {
						"type": "string",
						"format": "date-time",
						"nullable": true
					},
					"endGameClock": {
						"type": "string",
						"format": "date-span",
						"nullable": true
					},
					"description": {
						"type": "string",
						"nullable": true
					},
					"sourcePlayId": {
						"type": "string",
						"nullable": true
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.PlayReview.PlayReviewAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"isPlayUnderReview": {
						"type": "boolean",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Punt.PuntAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"kicker": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"blockedBy": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Reception.ReceptionAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardLine": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.RecoveryAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardLine": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ResetAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Return.ReturnAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardLine": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RisksAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"touchdown": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"onsideKick": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"fieldGoal": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"fourthDown": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"safety": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"challenge": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"penalty": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"videoReview": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"turnover": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"disconnect": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"other": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Risk.RiskStatus": {
				"enum": [
					"Unknown",
					"Active",
					"NonActive"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Rush.RushAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Sack.SackAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"tackler": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"secondTackler": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yardLine": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine"
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"quarterBack": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Safety.SafetyAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playActionId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Safety.SafetyUpdateAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ScoringResult": {
				"enum": [
					"Missed",
					"Made",
					"Blocked",
					"Failed"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Snap.SnapAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"huddle": {
						"type": "boolean"
					},
					"formation": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Snap.SnapFormation"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Snap.SnapFormation": {
				"enum": [
					"Shotgun",
					"UnderCenter",
					"FieldGoal",
					"Punt",
					"ExtraPoint",
					"TwoPointConversion"
				],
				"type": "string"
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Tackle.TackleAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"tackler": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.TimeoutAction": {
				"required": [
					"isConfirmed",
					"period",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"period": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.Period"
					},
					"gameClock": {
						"type": "string",
						"format": "date-span"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.TimeoutsRemainingAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"homeTimeoutsRemaining": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"awayTimeoutsRemaining": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"period": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Period.Period"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Touchback.TouchbackAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Touchdown.TouchdownAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playActionId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.Touchdown.TouchdownUpdateAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.TwoPointConversion.TwoPointConversionAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"playActionId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"result": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ScoringResult"
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.TwoPointConversion.TwoPointConversionUpdateAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32"
					},
					"playerId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"result": {
						"$ref": "#/components/schemas/GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.ScoringResult"
					},
					"isNullifiedByPenalty": {
						"type": "boolean"
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardLine": {
				"type": "object",
				"properties": {
					"yards": {
						"type": "integer",
						"format": "int32"
					},
					"fieldSideOfTeamId": {
						"type": "integer",
						"format": "int32"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchState.Platform.DataContracts.AmericanFootball.YardsToEndZoneAction": {
				"required": [
					"isConfirmed",
					"utcTimestamp"
				],
				"type": "object",
				"properties": {
					"teamId": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"yards": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"sequence": {
						"type": "integer",
						"format": "int32"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"GeniusSports.MatchStateFramework.MatchState.Platform.DataContracts.Common.ReliabilityAction": {
				"type": "object",
				"properties": {
					"isReliable": {
						"type": "boolean"
					},
					"isConfirmed": {
						"type": "boolean"
					},
					"reason": {
						"maxLength": 200,
						"minLength": 0,
						"type": "string",
						"nullable": true
					},
					"utcTimestamp": {
						"type": "string",
						"format": "date-time"
					}
				},
				"additionalProperties": false
			},
			"Microsoft.AspNetCore.Mvc.ProblemDetails": {
				"type": "object",
				"properties": {
					"type": {
						"type": "string",
						"nullable": true
					},
					"title": {
						"type": "string",
						"nullable": true
					},
					"status": {
						"type": "integer",
						"format": "int32",
						"nullable": true
					},
					"detail": {
						"type": "string",
						"nullable": true
					},
					"instance": {
						"type": "string",
						"nullable": true
					}
				},
				"additionalProperties": {}
			}
		}
	}
}