A chart is reusable venue geometry plus categories, buyer presentation, and authoring metadata. It has no live availability until a published snapshot is used to create an event.
Object types
Row
Parametric reserved seating defined by origin, count, spacing, direction, curve, and optional seat-level overrides.
Table
Round or rectangular seating that can book individual chairs, an atomic whole table, or a flexible party size within authored bounds.
Booth
One bookable block such as a trade-show stand, VIP box, or private suite.
GA area
A polygon with quantity-based capacity instead of individually presented seat positions.
Section
A named region that owns geometry, far-zoom navigation, and optional generated seat-plan behavior.
Shape
Non-bookable context such as a stage, field, wall, aisle, or decorative polygon.
Text
Wayfinding or descriptive copy placed independently on a floor.
Zone
A higher-level grouping for sections, navigation, focal points, reporting, and zone-scoped best-available selection.
Parametric geometry
Rows and sections store compact design intent rather than an arbitrary list of rendered dots. The renderer deterministically expands that intent into inventory positions.
This model enables consistent labels, scalable large venues, repeatable agent operations, and validation before publication.
Tables and inventory identity
| Mode | Buyer selects | Inventory behavior |
|---|---|---|
| Individual | One or more chairs | Each chair has its own identity |
| Whole table | The table | All capacity is one atomic unit |
| Flexible occupancy | A party size | Table remains exclusive to one buyer within min/max bounds |
New events preserve the table mode and capacity from the chart snapshot they were created from. Changing the chart later does not reinterpret an existing event’s inventory.
Categories, tiers, and price
Every bookable object has a category:
interface Category {
key: string;
label: string;
color: string;
price?: number;
tiers?: Array<{
id: string;
name: string;
price: number;
}>;
}keyis the stable integration identity.labelis buyer-facing copy.colordrives the map legend and seat styling.priceand tier prices use major currency units.
See ticket tiers for the buyer-to-server flow.
Sections, zones, and focal points
Sections group rows and other objects for navigation and venue structure. Zones group sections one level higher—for example Lower Bowl, Upper Bowl, and Floor.
Each used zone should have an explicit focal point aimed at its stage, field, or performance area. That focal influences zone-scoped best-available ranking and generated view-from-seat perspective; it does not change inventory identity.
Small venues can omit zones and work directly with sections or bare objects.
Three image jobs
| Asset | Purpose | Buyer receives it? |
|---|---|---|
Private trace reference (referenceImage) |
Authoring guide for PNG/JPEG/WebP or a selected PDF page | No |
| Imported SVG/DXF primitives | Sanitized shapes converted into editable chart objects | As resulting shapes |
Buyer background (backgroundImage) |
Optional presentation layer behind the buyer map | Yes |
Private reference bytes and provenance are stripped from the buyer document. SVG/DXF import supports a bounded primitive subset, not arbitrary scripts, external resources, or full CAD fidelity.
Authoring checklist
- Every bookable identity and visible label is unique where required.
- Categories use stable keys and intended major-unit prices.
- Rows/sections use geometry rules rather than manual seat duplication.
- Table booking modes match how the venue sells them.
- GA capacity and flexible table bounds are realistic.
- Sections and zones have readable names and explicit focal points.
- Private trace references are not confused with buyer backgrounds.
- Validation passes before publication.
Continue with accessibility and pricing, templates, or publishing and versioning.