{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://designsystemdocspec.org/v0.15.2/metadata/metadata.schema.json",
"title": "Entity metadata",
"description": "The metadata object every entity type accepts. Each field has its own schema file in this directory (status, since, last-updated, category, tags, aliases, summary, thumbnail, preview, links, governance, doc-origin); `extends` points at the shared entityExtends definition. Every field is optional, and each can appear only once. Simple fields are either a value or array ('since': '1.0.0', 'tags': [...]); status, lastUpdated, and docOrigin take a short string for the common case or an object for more detail.",
"$defs": {
"entityMetadata": {
"type": "object",
"description": "Optional metadata for an entity. Include only needed: lifecycle (status, since, lastUpdated), classification (category, tags, aliases), compact display (summary, thumbnail, preview), inheritance (extends), links (links), and who's accountable plus how the docs were made (governance, docOrigin).",
"properties": {
"status": {
"$ref": "status.schema.json#/$defs/status"
},
"since": {
"$ref": "since.schema.json#/$defs/since"
},
"lastUpdated": {
"$ref": "last-updated.schema.json#/$defs/lastUpdated"
},
"category": {
"$ref": "category.schema.json#/$defs/category"
},
"tags": {
"$ref": "tags.schema.json#/$defs/tags"
},
"aliases": {
"$ref": "aliases.schema.json#/$defs/aliases"
},
"summary": {
"$ref": "summary.schema.json#/$defs/summary"
},
"thumbnail": {
"$ref": "thumbnail.schema.json#/$defs/thumbnail"
},
"preview": {
"$ref": "preview.schema.json#/$defs/preview"
},
"extends": {
"$ref": "../common/extends.schema.json#/$defs/entityExtends"
},
"links": {
"$ref": "links.schema.json#/$defs/links"
},
"governance": {
"$ref": "governance.schema.json#/$defs/governance"
},
"docOrigin": {
"$ref": "doc-origin.schema.json#/$defs/docOrigin"
}
},
"additionalProperties": false,
"minProperties": 1
}
}
}
References: status, since, lastUpdated, category, tags, aliases, summary, thumbnail, preview, entityExtends, links, governance, docOrigin
[
{
"status": "stable",
"since": "1.0.0",
"lastUpdated": "2026-05-28",
"category": "action",
"tags": [
"action",
"interactive",
"form",
"cta",
"submit"
],
"summary": "Triggers an action or submits a form. The primary interactive element of the Acme Design System."
},
{
"status": {
"overall": "stable",
"platforms": {
"react": {
"status": "stable",
"since": "1.0.0"
},
"android": {
"status": "experimental",
"since": "3.0.0",
"note": "Compose implementation available in preview. API may change before v4."
},
"figma": {
"status": "stable",
"since": "1.0.0"
}
}
},
"since": "1.0.0",
"lastUpdated": {
"date": "2026-05-28",
"note": "Added focus-visible guidance and refreshed contrast requirements for inverse surfaces."
},
"aliases": [
"btn",
"cta",
"action-button"
],
"thumbnail": {
"url": "https://design.acme.com/assets/thumbnails/button.png",
"alt": "A primary button labeled 'Save changes'."
},
"preview": {
"kind": "url",
"url": "https://storybook.acme.com/?path=/story/components-button--primary"
},
"links": [
{
"kind": "source",
"url": "https://code.acme.com/design-system/src/components/button/button.tsx",
"label": "React component source"
},
{
"kind": "design",
"url": "https://design-tool.acme.com/file/abc123?node-id=1234:5678",
"label": "Design file — Button variants"
}
],
"governance": {
"owner": {
"name": "@acme/design-system",
"contact": "design-system@acme.com"
},
"lastReviewed": {
"date": "2026-06-12",
"reviewedAgainst": "@acme/ui@3.1.0"
}
},
"docOrigin": {
"overall": "authored",
"authorship": "ai-assisted",
"blocks": {
"api": "generated"
}
}
},
{
"status": {
"overall": "deprecated",
"deprecationNotice": "The legacy Button is deprecated as of 3.0.0. Use Button from @acme/components instead. See the migration guide at https://design.acme.com/migrations/button-v3."
}
}
]