A state is a set of variables that describe the current state of a match. Match state for cricket might look like this: const matchState = { innings: { first: { battingTeam: "EEE", totalRuns: 56, over: 5.5, wicketsFallen: 4, Batting: { striker: { name: "PlayerA", runs: 34, outReason: null }, nonStriker: { name: "PlayerD", runs: 20, outReason: null }, order: [ { name: "PlayerX", runs: 0, status: "out", profileLink: "https://example.com/profile/playerx", outReason: ["b", "Bowler1", null] }, { name: "PlayerY", runs: 10, status: "out", profileLink: "https://example.com/profile/playery", outReason: ["c", "Bowler2", "PlayerZ"] }, { name: "PlayerZ", runs: 15, status: "out", profileLink: "https://example.com/profile/playerz", outReason: ["run_out", null, "PlayerX"] }, { name: "PlayerB", runs: 5, status: "out", profileLink: "https://example.com/profile/playerb", outReason: ["st", "Bowler3", "WicketKeeperA"] }, { name: "PlayerA", runs: 34, status: "not out", profileLink: "https://example.com/profile/playera", outReason: null }, { name: "PlayerD", runs: 20, status: "not out", profileLink: "https://example.com/profile/playerd", outReason: null } ] }, Bowling: { freeHit: false, bowler: { name: "Bowler1", overs: 1.5, runsConceded: 24, wickets: 2 }, currentOver: [ { ball: 1, runs: 4, illegal: null }, { ball: 2, runs: 0, illegal: "no_ball" }, { ball: 3, runs: 1, illegal: "free_hit_legal" }, { ball: 4, runs: 0, illegal: null }, { ball: 5, runs: 6, illegal: null }, { ball: 6, runs: 0, illegal: null }, { ball: 7, runs: 0, illegal: "wide" } ], order: [ { name: "Bowler1", overs: 1.5, runsConceded: 15, wickets: 2, profileLink: "https://example.com/profile/bowler1" }, { name: "Bowler2", overs: 2.0, runsConceded: 10, wickets: 1, profileLink: "https://example.com/profile/bowler2" }, { name: "Bowler3", overs: 2.0, runsConceded: 20, wickets: 1, profileLink: "https://example.com/profile/bowler3" } ], extras: { noBalls: 1, wides: 2, byes: 0, legByes: 0 } }, inningsStatus: "in_progress", target: null }, second: { battingTeam: "IT", totalRuns: 0, over: 0.0, wicketsFallen: 0, Batting: { striker: null, nonStriker: null, order: [] }, Bowling: { bowler: null, currentOver: [], extras: { noBalls: 0, wides: 0, byes: 0, legByes: 0 } }, inningsStatus: "not_started", target: 57 } }, interrupted: "wet_outfield", teamACaptain: "CaptainA", teamBCaptain: "CaptainB", teamAWicketKeeper: "WicketKeeperA", teamBWicketKeeper: "WicketKeeperB", umpires: ["Umpire1", "Umpire2"], matchStatus: "in_progress", matchoutcome: [ null, // EEE/IT/draw/no_result null, // run/wickets null // 32/4 ] };