# Manifest schema

`manifest.json` is the single source of truth that flows from extraction → curation → deck assembly. It lives at `<report-slug>/manifest.json`.

```json
{
  "report": {
    "client_name": "Alembic",
    "title": "South of Market",
    "title_italic_word": "of",
    "subtitle": "Alembic office options — eleven curated spaces across Townsend, King & 3rd.",
    "confidential_date": "April 2026",
    "submarket": "South of Market",
    "footer_left": "ALEMBIC · SAN FRANCISCO OFFICE OPTIONS"
  },
  "matrix_headline": "Eleven spaces, eight buildings",
  "stat_row": {
    "buildings": 8,
    "spaces": 11,
    "sqft_range": "9,362–35,578"
  },
  "closing": {
    "headline": "Let's walk the short list.",
    "headline_italic_word": "short list",
    "recommendation": "We recommend touring three to five of these spaces together over the next two weeks. We will coordinate access and gather financial terms on your behalf."
  },
  "properties": [
    {
      "slug": "139-townsend",
      "address": "139 Townsend",
      "floor_label": "1st, 2nd & Mezzanine",
      "floor_italic": true,
      "subhead_tags": ["SOUTH OF MARKET", "SUBLEASE THRU APR 2027"],
      "stats": {
        "sqft": "19,790",
        "rate": "TBD",
        "monthly": "TBD"
      },
      "matrix_row": {
        "property": "139 Townsend",
        "floor": "1st & 2nd",
        "sqft": "19,790",
        "rate": "TBD",
        "monthly": "TBD",
        "notes": "Sub-lease through April 2027. Brick & timber, high ceilings, 38 offices, 3 conference rooms, internal stair.",
        "badge": "SUBLEASE"
      },
      "description": "High ceilings, exposed brick-and-timber, close to Oracle Park and the Bay. 38 offices, 3 conference rooms, kitchen, wellness room, open workstation area, soft seating, and an internal stair connecting the two floors.",
      "tiles": [
        {"caption": "OPEN WORKSTATION AREA", "image": "images/prop-01-139-townsend/selected/tile1.jpg"},
        {"caption": "SOFT SEATING & COLLABORATION", "image": "images/prop-01-139-townsend/selected/tile2.jpg"},
        {"caption": "CONFERENCE ROOM", "image": "images/prop-01-139-townsend/selected/tile3.jpg"},
        {"caption": "1ST FLOOR · FLOOR PLAN", "image": "images/prop-01-139-townsend/selected/floorplan.jpg", "is_floorplan": true}
      ],
      "costar": {
        "property_id": "97539",
        "url": "https://product.costar.com/detail/lookup/97539/summary",
        "year_built": 1984,
        "rba_sqft": 78388,
        "construction": "Steel",
        "class": "B"
      }
    }
  ]
}
```

## Field notes

- `title_italic_word` — the small word inside the cover title that gets the italic display-serif accent. The example uses "of" inside "South *of* Market." The deck builder splits the title on this word and styles it italic.
- `floor_italic: true` — same idea on the property-page header: `139 Townsend *1st, 2nd & Mezzanine*`.
- `tiles` may contain ANY number of items. The deck builder uses the first 4 (3 interiors + 1 floor plan) on the main property page; additional tiles paginate onto gallery slides, 4 per slide. Set `is_floorplan: true` on the plan tile so the builder uses a white background instead of the cream-grey panel.
- `virtual_tour_url` (recommended; check for it on every space) — if the listing has a virtual tour (Matterport, Asteroom, Kuula, 3D tour, etc.), include the URL here. The builder renders a clickable "VIRTUAL TOUR ↗" badge on the property page, adds "VIRTUAL TOUR" to the sub-header tags automatically, AND appends a Virtual Tours summary slide at the end of the deck listing every property with a tour. Search for these in the per-suite Lease modal's Space Notes and in the broker brochure PDF — see SKILL.md "Virtual tour discovery (mandatory)" for the search pattern.
- `subhead_tags` is a list of small-caps strings joined by ` · ` in the property-page sub-header. The first tag is always the submarket; subsequent tags come from the badge rules (see `badge-rules.md`).
- `matrix_row.badge` is the single orange-bordered tag rendered after the notes prose. If multiple badges apply, prefer the one most distinctive to that space (a "SPEC SUITE" tag is more useful than a "PLUG & PLAY" tag if both are true).
- Numeric stats are stored as **formatted strings** (`