This site is MDX files and a few TypeScript helpers. articleJsonLd reads the post. If the frontmatter is wrong, the schema is wrong. I do not maintain a parallel CMS object.

One source

Two titles already exist: title on the page, seoTitle in the SERP. JSON-LD uses the same dates and description. Breadcrumbs too.

No special AI markup

Google said AI Overviews do not need extra markup. I checked what we send in that post.

If I add a field

I add it to frontmatter and the helper, not to a one-off script on one URL. Same discipline as drafts out of the sitemap.