# Section Content JSON Handback

This file answers the section-folder content JSON requirement.

Rule:

- each section folder has `content.json`;
- `section.partial.html` is generated from that JSON by `scripts/build-home-v5-section-library.mjs`;
- content changes must edit `content.json`, then regenerate the section library and refresh typography;
- do not hand-edit `section.partial.html` for frequently changed content.

Update command:

```bash
/Users/marknuttall/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/bin/node scripts/build-home-v5-section-library.mjs && /Users/marknuttall/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/bin/node scripts/audit-section-folder-typography.mjs && ./scripts/prepare-public-upload.sh
```

## Per-Section Handback

| Section | Content JSON | Layer | Frequently changed categories | Partial render confirmation |
| --- | --- | --- | --- | --- |
| Header, drawer and mobile menu controls | `demos/sections/header-drawer/content.json` | structural chrome | none | `section.partial.html` generated from `content.json.renderedHtml` |
| Hero | `demos/sections/hero/content.json` | static source section | none | `section.partial.html` generated from `content.json.renderedHtml` |
| Approved page family switcher | `demos/sections/template-switcher/content.json` | static source section | none | `section.partial.html` generated from `content.json.renderedHtml` |
| Standard opening hours | `demos/sections/standard-opening-hours/content.json` | JSON data | opening-hours, freshness | `section.partial.html` generated from `content.json.renderedHtml` |
| Weekly and monthly events | `demos/sections/weekly-monthly-events/content.json` | JSON data | events | `section.partial.html` generated from `content.json.renderedHtml` |
| The email club and VIP offers | `demos/sections/email-club-vip-offers/content.json` | JSON data | offers, contact | `section.partial.html` generated from `content.json.renderedHtml` |
| Prices at a glance | `demos/sections/prices-at-a-glance/content.json` | JSON data | prices, opening-hours, membership | `section.partial.html` generated from `content.json.renderedHtml` |
| Multi-visit passes | `demos/sections/multi-visit-passes/content.json` | JSON data | prices, passes, membership, offers | `section.partial.html` generated from `content.json.renderedHtml` |
| Membership | `demos/sections/membership/content.json` | JSON data | membership, contact | `section.partial.html` generated from `content.json.renderedHtml` |
| What's included with entry | `demos/sections/whats-included-entry/content.json` | static source section | none | `section.partial.html` generated from `content.json.renderedHtml` |
| Address and directions | `demos/sections/address-directions/content.json` | JSON data | contact, address | `section.partial.html` generated from `content.json.renderedHtml` |
| Facilities and experience | `demos/sections/facilities-experience/content.json` | JSON data | facilities | `section.partial.html` generated from `content.json.renderedHtml` |
| First time visitors | `demos/sections/first-time-visitors/content.json` | static source section | none | `section.partial.html` generated from `content.json.renderedHtml` |
| Steam Complex FAQs | `demos/sections/faqs/content.json` | static source section | none | `section.partial.html` generated from `content.json.renderedHtml` |
| Trust and brand authority | `demos/sections/trust/content.json` | static source section | none | `section.partial.html` generated from `content.json.renderedHtml` |
| Our venues | `demos/sections/venues/content.json` | JSON data | featured | `section.partial.html` generated from `content.json.renderedHtml` |
| Footer and controls | `demos/sections/footer-controls/content.json` | structural chrome | none | `section.partial.html` generated from `content.json.renderedHtml` |
| Event FAQs | `demos/sections/event-faqs/content.json` | static source section | none | `section.partial.html` generated from `content.json.renderedHtml` |
| All In With Entry Event Section | `demos/sections/all-in-with-entry-event/content.json` | JSON data | prices, passes, membership | `section.partial.html` generated from `content.json.renderedHtml` |
| About / Who It Suits Event Section | `demos/sections/about-who-suits-event/content.json` | static source section | none | `section.partial.html` generated from `content.json.renderedHtml` |

## Current Limit

The current implementation stores the source-backed rendered section HTML in `content.json.renderedHtml` and generates the partial from that JSON. A future deeper normalization can split each frequent value into named JSON fields, but the editable source is now JSON, not the rendered partial.

