---
title: "Charts and objects"
description: "Build reusable venue geometry from rows, tables, booths, GA areas, sections, zones, shapes, and text."
---

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

<CardGrid>
  <Card title="Row">
    Parametric reserved seating defined by origin, count, spacing, direction,
    curve, and optional seat-level overrides.
  </Card>
  <Card title="Table">
    Round or rectangular seating that can book individual chairs, an atomic
    whole table, or a flexible party size within authored bounds.
  </Card>
  <Card title="Booth">
    One bookable block such as a trade-show stand, VIP box, or private suite.
  </Card>
  <Card title="GA area">
    A polygon with quantity-based capacity instead of individually presented
    seat positions.
  </Card>
  <Card title="Section">
    A named region that owns geometry, far-zoom navigation, and optional
    generated seat-plan behavior.
  </Card>
  <Card title="Shape">
    Non-bookable context such as a stage, field, wall, aisle, or decorative
    polygon.
  </Card>
  <Card title="Text">
    Wayfinding or descriptive copy placed independently on a floor.
  </Card>
  <Card title="Zone">
    A higher-level grouping for sections, navigation, focal points, reporting,
    and zone-scoped best-available selection.
  </Card>
</CardGrid>

## 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.

<Aside type="note" title="Edit the rule, not every seat">
  Changing row spacing, curvature, count, or a section path reflows the derived
  seats. Seat-level overrides retain intentional exceptions such as labels,
  accessibility, pricing, and skipped positions.
</Aside>

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:

```ts
interface Category {
  key: string;
  label: string;
  color: string;
  price?: number;
  tiers?: Array<{
    id: string;
    name: string;
    price: number;
  }>;
}
```

- `key` is the stable integration identity.
- `label` is buyer-facing copy.
- `color` drives the map legend and seat styling.
- `price` and tier prices use major currency units.

<Aside type="caution" title="Authoritative for holds and reporting">
  SeatLayer does not process payment, but category/tier price is stamped into
  held items and booked records. Charge from the server-inspected hold. A
  browser `pricing` override changes display only.
</Aside>

See [ticket tiers](/buyer-sdk/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.

## Panorama manifest jobs

Premium Panorama Manifests customers can start a private, revision-pinned CSV
or JSON ingest from a trusted server with `createPanoramaManifestJob`, then poll
the source-redacted result with `retrievePanoramaManifestJob`. Each row targets
a stable venue, floor, section, row, or seat identity; URL inputs are fetched
and transformed into generated preview and display tiers without exposing the
original source URL in status responses.

Job creation never changes the chart and never publishes media. A signed-in
human must review a fully ready job in the dashboard and explicitly apply it to
the still-matching draft revision. Listing jobs, retrying, cancelling, applying,
and publishing are deliberately absent from server-key and MCP surfaces.

## 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](/designer/accessibility-and-pricing),
[templates](/designer/templates), or
[publishing and versioning](/designer/publishing-and-versioning).