SportEvent
Interface
Contest-level cross-sport event (Blueprint 1 §3.6) — the analogue of one Race or one FootballMatch
(never a grouping). Carries only fields that genuinely unify across sports; the cross-sport
events() / union Event surface is deferred until a real consumer exists (BP4 §4.8).
Fields
Section titled “Fields”| Field | Args | Type | Description |
|---|---|---|---|
id | — | ID! required | — |
sport | — | Sport! required | — |
competition | — | Competition | Nullable on the interface (covariance): not every contest belongs to a competition. |
scheduledTime | — | DateTime | Nullable for the same covariance reason as competition (POD-845): an F1 session can exist before the provider publishes its time (motorsport_sessions.scheduled_time is nullable), so the interface cannot promise one. Football, tennis and basketball each still declare DateTime! on their concrete type — their columns are NOT NULL, so they guarantee it honestly and a consumer querying those types directly is unaffected. Only a consumer reading through this interface must handle null, which is the truth. |
lifecycle | — | EventLifecycle! required | — |
venue | — | Course | — |