One TS record per integration (canonical slug): name, icon key, hero
copy, banner video, three supported-feature cards, architecture asset,
live-demo iframes, optional structured CTA. The aggregator
src/data/frameworks/index.ts exports the slug-keyed map consumed by
the framework-root route.
Three frameworks (ms-agent-dotnet, ag2, agent-spec) have post-features
content that doesn't fit the structured cta field (Resources links, a
Callout, an Agent Spec how-to body). Each ships a sibling
after-features.mdx loaded into the FrameworkOverview's afterFeatures
slot when hasAfterFeaturesMdx is true.
LangGraph variants (langgraph-typescript, langgraph-fastapi) and
ms-agent-python alias the same record as their primary variant —
their content folders are shared and the legacy docs never
differentiated variants at the intro-page level. The component's link
rewriter keeps every CTA on the variant's own URL.
built-in-agent is excluded — it's the default framework and the docs
root '/' IS its overview page.