Skip to content

Venue

Object type

A venue / stadium / arena surfaced as a registry entity (POD-455). Backed by the shared courses table — the same rows that Course exposes on the racing side — so a venue is sport-scoped via courses.sport_id (football stadiums, basketball arenas, …). Edit-only in v1: operators correct provider-seeded fields but do not manually mint venues, and there is no merge flow, so aliases is always empty.

Implements: Entity

FieldArgsTypeDescription
idID! required
nameString! required
displayNameStringOperator-curated display name (courses.display_name) — editable via updateVenue.
shortNameString
tlaStringThree-letter abbreviation. Often null for non-racing venues (courses.tla is nullable since migration 134). Read-only — part of the (tla, country) uniqueness key.
countryCodeString! requiredISO 3166-1 alpha-2 country code (courses.country_code).
regionString
cityString
timeZoneString! requiredIANA time-zone identifier (e.g. Europe/London).
capacityIntSpectator capacity (courses.capacity). Null where unknown.
openedYearIntYear the venue opened (courses.opened_year). Null where unknown.
versionInt! requiredOptimistic-locking version (courses.version) — pass as expectedVersion on updateVenue.
sportIdID! required
createdAtDateTime! requiredWhen the venue row was first inserted (courses.created_at).
aliases[ParticipantAlias!]! requiredEmpty — venues are not part of the M22 participant merge flow, but Entity requires the field.