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
Fields
Section titled “Fields”| Field | Args | Type | Description |
|---|---|---|---|
id | — | ID! required | — |
sport | — | Sport! required | — |
competition | — | Competition! required | Non-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 | — | String | Fine-grained provider state name, e.g. “2nd quarter”, “Finished after overtime”. |
startedTime | — | DateTime | Tip-off time the game actually started; null pre-tip. |
finishedTime | — | DateTime | Time the game finished; null until final (distinct from startedTime for a completed game). |
homeTeam | — | Team! required | — |
awayTeam | — | Team! required | — |
homeScore | — | Int | Final/running game score; null pre-tip or on a feed page that carries no score detail. |
awayScore | — | Int | — |
segmentScores | — | [SegmentScore!]! required | Per-quarter/overtime scores, in segment order (label “quarter”/“overtime”). Populated for EnetPulse feed rows whose page carried the scopes; empty otherwise. |
homeTeamStats | — | BasketballStatLine | Home side’s match-total box-score stats; null until a deep capture delivers them (tier-dependent). |
awayTeamStats | — | BasketballStatLine | Away side’s match-total box-score stats; null until a deep capture delivers them (tier-dependent). |
lineups | — | [BasketballGameLineup!]! required | Per-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 | — |