Remove property contentSection, the dead Page document nodes and the PageSection config 28 transforms pass property: 'contentSection' to createComponentRenderable, which emits data-field="content-section" on the rune root. Nothing reads it. The one consumer that ever existed, the Page document node, compares the camelCase 'contentSection' against the kebab-cased attribute, so it could never match, and it is never registered by any Markdoc config. Page also stamps typeof="PageSection", which is not a schema.org type. SPEC-133 decided the removal; v0.35.0 deferred it because it changes HTML on every section rune, and nothing has carried it out since.It lands first in v0.43.0 because it touches the runes SPEC-160 changes next, and it removes one recorded plugin-vs-composed difference from the four composed-storytelling tests before WORK-653 re-runs those comparisons.
medium simple
section declares its body role section's sections declare preamble, headline and blurb but no body, so reading and dropcap silently do nothing on a section. This is the case packages/transform/src/section-roles.ts exists to catch (SPEC-160 D1). It stands on its own and is the first step of SPEC-160's order.
high trivial
section gains the media split, cover and a media kind card is the only primitive with a media split, so every composition that wants a titled region with media places a drawn object. ADR-041 moves the split onto section. This item gives section the split attributes, cover, and a media attribute that stamps data-media, while card's output stays exactly as it is (SPEC-160 D2, D3).
high moderate
The storytelling compositions place section instead of card The composed character, realm and faction place {% card %}, because it was the only primitive with a media split. Once section has the split, they move to it (SPEC-160 D4). The expected differences are listed in D4: rf-section__* element classes, a real <header> for title and description, no surface, and the portrait regaining data-media="portrait".
medium moderate
An actions primitive, used by hero and cta Buttons are a convention, not a primitive. hero and cta render links through linkItem, and the CSS that makes them buttons is copied into both runes in both packages:
medium moderate
link wraps blocks, and card and bento-cell href render through it Only card and bento-cell can make a whole region a link, each through its own href. Both stretched overlays are aria-hidden="true" tabindex="-1", so keyboard and screen-reader users cannot reach them. SPEC-160 D8 extends the existing link tag to wrap blocks, and both href attributes become shorthand that renders through it.
medium complex
The eyebrow is a section role, and its linked pill moves into the sections dimension An eyebrow that holds a link renders as a pill with a stretched link. The rules for it are copied into nine runes: hero, cta, section, feature, pricing, reveal, tabs, accordion and steps. Each copy is in both packages/skeleton/styles/runes/ (the stretched link) and packages/lumina/styles/runes/ (the pill), so there are 18 copies of one pattern. A theme has to restyle the pill in nine places, and a new rune with an eyebrow gets it only by copying it again. card has an eyebrow but no pill.The cause is that the eyebrow has no section role. The shared roles (header, preamble, title, description, body, footer, media) are styled by [data-section] in the sections dimension, whatever the rune; the eyebrow is styled only by its BEM class. With section as the composition base (ADR-041) and hero and cta heading for compositions with no rune CSS (SPEC-160 D7), the pill belongs to the anatomy, not to each rune. This follows the same pattern as WORK-654, which moves button CSS out of hero and cta.
medium moderate
section's header grammar is anchored to the headline, with a header attribute and a slot-role warning section reads a leading paragraph as an eyebrow even when no heading follows. A composition that places prose in a section gets it re-roled without any warning, and so does a standalone section used as a region with media. ADR-046 anchors the grammar to the headline, adds a header attribute, and warns when slot content lands in a header role it is not named for.It lands before WORK-653 and WORK-654, which both compose over section.
high moderate