Skip to content

SpotMap

A venue spot map. Belongs to a location, optionally narrowed to one facility (a single auditorium inside a multi-screen building).

Layout-only — for per-session occupancy (sold, held, viewer-held), read ActivitySession.seating.

Fields

idID!
nameString!
viewportWidthFloat!

The map's drawing box, in the abstract units spot coordinates use.

viewportHeightFloat!
elements[SpotMapElement!]!
sections[SpotMapSection!]!
spots[Spot!]!

Spots in one section.

A section argument is required, and deliberately so: a 21,000-spot arena serialized spot-by-spot is roughly four megabytes, which no picker should ever ask for. Clients render the whole house from blocks + overrides (about 20 KB for that same arena) and only fetch real spot rows for the section the buyer has actually opened.

Arguments (1)
sectionEntityRef!
holdSecondsInt!

How long a spot stays held while a buyer completes checkout.

spotCountInt!

Total spots, including withheld ones.

sellableSpotCountInt!

Spots on general sale — excludes house spots, kills, and accessibility holds.

blocks[SpotBlock!]!

The generative block rules the spots were expanded from.

This is the map's wire format. Expanding these client-side with the shared @sessions-internal/core/spot-map expander reproduces every spot exactly — same positions, same labels, same deterministic ids — so the picker can draw a whole arena without the server ever sending a spot. Apply overrides on top afterwards.

overrides[SpotOverride!]!

Per-spot deviations from what the rules generate — the spots an operator nudged, relabelled, or withheld by hand. Small by construction, and the second half of reproducing the map client-side.

Used in