Article: the only required pattern
Every leaf gets an Article object with headline, datePublished, dateModified, author, mainEntityOfPage, and image. The dateModified value mirrors the lastUpdated field on the slug; the build pipeline embeds it at compile time. Author is an Organization rather than a Person on this surface because the team is the named entity, not any single contributor. We have observed the Article schema correlate with one to two-position rich-snippet placement gains on Bing; Google does not surface them as visibly but still uses them as freshness signals.
BreadcrumbList: cheap, real lift
BreadcrumbList on every leaf describes the path Home, Case study, Spine piece, Leaf. The schema is forty lines of TypeScript composed at build time from the slug's relatedSpineLinks field. The lift is visible in the rich-results test and shows up as breadcrumb display in mobile search results, which earns measurable click-through-rate at the top of the SERP. This is the highest-leverage schema we ship and the cheapest to maintain. The W3C JSON-LD spec is the source for the syntax; schema.org is the source for the type vocabulary.
FAQPage: only when the leaf actually has a FAQ section
FAQPage schema is the most over-applied. Adding it to a leaf without a real FAQ section is a misuse and earns nothing. We ship FAQPage only on leaves that have a literal question-and-answer section in their body, which is about four leaves on this surface. The four that do ship it get rich-snippet FAQ accordion display on Bing and occasional Google placement. The four we stopped shipping (HowTo, Product, Review, VideoObject) either earned no lift or actively triggered manual reviews when the page did not match the schema's contract.
