A layout's view can register fields for what doesn't fit in a block,
such as a background image: Layouts::schema('layouts.campaign', fn () =>
[...]). The page form shows them under the layout picker, and they're
saved in the page's new settings column, by view, so another layout's
field of the same name can be of another type. The view gets its own as
$settings; elsewhere, $page->layoutSettings() and layoutSetting().
They're kept like the rest of what a page says: in unpublished changes
and in revisions. AI tools see and set them: list_layouts lists a
layout's fields, get_page its values, and create_page and update_page
take layout_settings, checked like block data.
Layouts without fields work as before, and so do pages until the
migration has run: the fields stay hidden and $settings is empty.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>