Skip to content

BasketballGame

Object type

A basketball game. Head-to-head team contest with quarter-level segment scores. Implements the contest-level SportEvent interface; status follows the shared multisport status model. The per-GAME roster + box score is lineups (POD-675); SEASON squad membership remains the shared team_memberships surface (Query.teamSquad), exactly as football does it. Freshness is poll-bound — see the blueprint’s live-update caveats.

Score detail (BP3 FOLLOW-UPS / data-model §5.B): the EnetPulse transform maps homeScore/awayScore, segmentScores (per-quarter/overtime) and went_to_overtime where the payload carries them — so these are populated for feed rows whose page included the score detail, and null/empty/false otherwise (pre-tip, or a page without the detail).

Box score (POD-675, payload-verified against live NBA data 2026-08-03): homeTeamStats/awayTeamStats carry the match-scope team totals and lineups the per-player statlines. Both are DEEP-capture data: they populate only after a deep event fetch delivers the Composition/Scope payload, and coverage is tier-dependent (every NBA game probed has the full set; lower-tier competitions deliver none) — null/ empty here is a normal outcome, not an error.

Implements: SportEvent

FieldArgsTypeDescription
id—ID! required—
sport—Sport! required—
competition—Competition! requiredNon-null here (covariance-legal): every basketball game belongs to a competition.
season—CompetitionSeason! required—
stage—CompetitionStage! required—
venue—Course—
scheduledTime—DateTime! required—
lifecycle—EventLifecycle! required—
status—MultisportEventStatus! required—
statusDetail—StringFine-grained provider state name, e.g. “2nd quarter”, “Finished after overtime”.
startedTime—DateTimeTip-off time the game actually started; null pre-tip.
finishedTime—DateTimeTime the game finished; null until final (distinct from startedTime for a completed game).
homeTeam—Team! required—
awayTeam—Team! required—
homeScore—IntFinal/running game score; null pre-tip or on a feed page that carries no score detail.
awayScore—Int—
segmentScores—[SegmentScore!]! requiredPer-quarter/overtime scores, in segment order (label “quarter”/“overtime”). Populated for EnetPulse feed rows whose page carried the scopes; empty otherwise.
homeTeamStats—BasketballStatLineHome side’s match-total box-score stats; null until a deep capture delivers them (tier-dependent).
awayTeamStats—BasketballStatLineAway side’s match-total box-score stats; null until a deep capture delivers them (tier-dependent).
lineups—[BasketballGameLineup!]! requiredPer-game roster + statlines, home side first then away (starters before bench within a side). Empty until a deep capture delivers lineups.
createdAt—DateTime! required—
updatedAt—DateTime! required—
version—Int! required—