Booking Form
A lead-capture booking form plus a static contact info panel. No backend call on submit (sessionStorage + redirect, plus a best-effort email POST) — every example here is rendered INERT (visible, non-interactive) so a preview can never trigger a real submission. phone/address/hours come from extraProps (chrome_config / live identity data), not this entry's own layout_config props.
Default — list info panel
infoPanelStyle unset ("list"): map on top, then address/hours, then phone/email pills.
Rendered inert — visible but non-interactive, since submitting it would trigger a real side effect.
unifiedCard + rows + lastNameLabel
One outer card, a 4-row info panel (Address/Phone/Email/Hours), and a separate last-name field.
Rendered inert — visible but non-interactive, since submitting it would trigger a real side effect.
No contact email configured
extraProps.contactEmailConfigured: false — the form column is replaced by a phone-only fallback message.
Rendered inert — visible but non-interactive, since submitting it would trigger a real side effect.
hoursLayout: split
The info panel's hours as a day | morning | afternoon table (hoursMorningLabel / hoursAfternoonLabel) — for schools with a lunch break.
Rendered inert — visible but non-interactive, since submitting it would trigger a real side effect.