// Structured Data (ADR 0028): the JSON-LD a page hands to search engines. // // Base carries only what a Base component needs to emit its own entity — the // safe serializer and the BreadcrumbList builder Breadcrumbs uses — because a // Base component may not import a child Kit. The Marketing Kit builds the rest // (Organization, WebSite, articles, FAQ, products) on this serializer and adds // the `JsonLd` and `SeoHead` components. /** The vocabulary every DS-built node speaks. */ export const SCHEMA_ORG = "https://schema.org"; /** One schema.org node: a `@type` plus its properties. */ export interface JsonLdNode { "@context"?: typeof SCHEMA_ORG; "@type": string; "@id"?: string; [property: string]: unknown; } /** A top-level JSON-LD document: one node, or a `@graph` of several. */ export type JsonLdDocument = | JsonLdNode | { "@context": typeof SCHEMA_ORG; "@graph": readonly JsonLdNode[] }; // Characters that could close the surrounding