Schemas Documentation
JSON Schema is a declarative language for annotating and validating the structure, constraints, and data types of JSON documents. It standardises expectations for JSON data and enables tooling to validate and generate with confidence. This guide covers the schemas in this design system—from the basics to how AI agents use them in the builder.
Overview
Our target state is a consistent interface between design, the UI builder, and AI agents. Components, tokens, system policy, and intelligence hints become contracts that agents can reason about—so they can propose components, validate constraints (accessibility, platform, security), and produce deterministic, production‑ready code.
- Consistency: one contract across teams, platforms, and generators
- AI interoperability: schemas inform agent planning, selection, and verification
- Validation & safety: declarative constraints prevent invalid or non‑compliant output
- Portability: tokens and components map cleanly to multiple frameworks
Location
components/schemas/*.schema.json
Format
JSON Schema (draft-07+ compatible)
component.schema.json
View sourceDefines the contract for individual UI components (props, slots, variants, platforms). AI agents use this to select components, validate inputs, and generate framework-specific code safely.
Full schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "../schemas/component.schema.json",
"title": "DSIS Component Schema (v2)",
"description": "Schema for individual design system components, optimized for AI agents.",
"type": "object",
"required": [
"id",
"name",
"category",
"version"
],
"properties": {
"$schema": {
"type": "string",
"const": "../schemas/component.schema.json"
},
"id": {
"$ref": "#/$defs/componentId",
"description": "Unique component identifier (kebab-case)."
},
"name": {
"type": "string",
"description": "Human-readable component name"
},
"description": {
"type": "string",
"maxLength": 2000
},
"category": {
"type": "string",
"enum": [
"base",
"atoms",
"molecules",
"organisms",
"templates",
"pages"
]
},
"version": {
"$ref": "#/$defs/semver"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"source": {
"type": "object",
"properties": {
"repo_url": {
"type": "string",
"format": "uri"
},
"sdc_path": {
"type": "string"
},
"docs_url": {
"type": "string",
"format": "uri"
},
"commit": {
"type": "string"
},
"extracted_by": {
"type": "string"
},
"last_updated": {
"type": "string",
"format": "date-time"
},
"extracted_from": {
"type": "object",
"description": "File sources used to extract this component definition.",
"properties": {
"component_yml": {
"type": "string"
},
"template": {
"type": "string"
},
"styles": {
"type": "string"
},
"javascript": {
"type": "string"
},
"stories": {
"type": "string"
},
"mixins": {
"type": "string"
},
"docs": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"capabilities": {
"type": "object",
"properties": {
"interactive": {
"type": "boolean",
"default": false
},
"requires_js": {
"type": "boolean",
"default": false
},
"server_renderable": {
"type": "boolean",
"default": true
},
"is_layout": {
"type": "boolean",
"default": false
},
"is_container": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"quality": {
"type": "object",
"properties": {
"maturity": {
"type": "string",
"enum": [
"experimental",
"stable",
"deprecated"
],
"default": "stable"
},
"docs_quality": {
"type": "string",
"enum": [
"LOW",
"MODERATE",
"HIGH"
]
},
"a11y_score": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": false
},
"platforms": {
"type": "object",
"properties": {
"drupal": {
"type": "object",
"properties": {
"version": {
"type": "string"
},
"sdc": {
"type": "boolean"
},
"namespace": {
"type": "string"
},
"module": {
"type": "string"
},
"schema_version": {
"type": "string"
},
"template": {
"type": "string"
},
"libraries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"css": {
"type": "object",
"properties": {
"base_class": {
"type": "string"
},
"modifiers": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_properties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"html": {
"type": "object",
"properties": {
"template_engine": {
"type": "string",
"enum": [
"twig",
"handlebars",
"liquid",
"none"
]
},
"template_url": {
"type": "string",
"format": "uri"
},
"css_url": {
"type": "string",
"format": "uri"
},
"js_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
"props": {
"type": "object",
"description": "Component properties keyed by prop name.",
"additionalProperties": {
"$ref": "#/$defs/propDefinition"
}
},
"slots": {
"type": "object",
"description": "Named content insertion points with acceptance rules.",
"additionalProperties": {
"$ref": "#/$defs/slotDefinition"
}
},
"relationships": {
"$ref": "#/$defs/relationships"
},
"examples": {
"type": "array",
"items": {
"$ref": "#/$defs/example"
}
},
"token_bindings": {
"$ref": "#/$defs/tokenBindings"
},
"embedding_ref": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"dimensions": {
"type": "integer",
"minimum": 1
},
"storage_key": {
"type": "string"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"intelligence": {
"$ref": "./intelligence.schema.json"
}
},
"$defs": {
"componentId": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"semver": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-.]+)?(?:\\+[0-9A-Za-z-.]+)?$"
},
"tokenReference": {
"description": "Reference to a design token by name or CSS custom property.",
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"mode": {
"type": "string"
},
"fallback": {
"type": "string"
}
},
"required": [
"name"
],
"additionalProperties": false
}
]
},
"uiHints": {
"type": "object",
"properties": {
"control": {
"type": "string",
"enum": [
"text",
"textarea",
"select",
"toggle",
"number",
"url",
"code",
"json"
]
},
"group": {
"type": "string"
}
},
"additionalProperties": false
},
"propDefinition": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"string",
"number",
"boolean",
"enum",
"array",
"object",
"media",
"rich_text",
"url"
]
},
"required": {
"type": "boolean",
"default": false
},
"description": {
"type": "string"
},
"examples": {
"type": "array",
"items": {}
},
"implementation_note": {
"type": "string"
},
"ui": {
"$ref": "#/$defs/uiHints"
}
},
"allOf": [
{
"if": {
"properties": {
"type": {
"const": "string"
}
}
},
"then": {
"properties": {
"default": {
"type": "string"
},
"min_length": {
"type": "integer",
"minimum": 0
},
"max_length": {
"type": "integer",
"minimum": 0
},
"pattern": {
"type": "string"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "number"
}
}
},
"then": {
"properties": {
"default": {
"type": "number"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "boolean"
}
}
},
"then": {
"properties": {
"default": {
"type": "boolean"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "enum"
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"type": "array",
"items": {
"type": "string"
}
},
"default": {
"type": "string"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "array"
}
}
},
"then": {
"properties": {
"items": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "object"
},
{
"$ref": "#/$defs/componentId"
}
]
},
"min_items": {
"type": "integer",
"minimum": 0
},
"max_items": {
"type": "integer",
"minimum": 0
},
"default": {
"type": "array"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "object"
}
}
},
"then": {
"properties": {
"properties": {
"type": "object"
},
"default": {
"type": "object"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "media"
}
}
},
"then": {
"properties": {
"accepts": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "rich_text"
}
}
},
"then": {
"properties": {
"allowed_marks": {
"type": "array",
"items": {
"type": "string"
}
},
"allowed_blocks": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "url"
}
}
},
"then": {
"properties": {
"default": {
"type": "string",
"format": "uri"
}
}
}
}
],
"additionalProperties": true
},
"slotDefinition": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"content_kind": {
"type": "string",
"enum": [
"text",
"html",
"component",
"mixed"
],
"default": "component"
},
"accepts": {
"type": "array",
"items": {
"$ref": "#/$defs/componentId"
}
},
"cardinality": {
"type": "string",
"enum": [
"single",
"multiple"
],
"default": "multiple"
},
"min_items": {
"type": "integer",
"minimum": 0
},
"max_items": {
"type": "integer",
"minimum": 1
},
"required": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"relationships": {
"type": "object",
"properties": {
"requires": {
"type": "array",
"items": {
"$ref": "#/$defs/relationshipEdge"
}
},
"contains": {
"type": "array",
"items": {
"$ref": "#/$defs/relationshipEdge"
}
},
"alternatives": {
"type": "array",
"items": {
"$ref": "#/$defs/relationshipEdge"
}
},
"incompatible": {
"type": "array",
"items": {
"$ref": "#/$defs/relationshipEdge"
}
}
},
"additionalProperties": false
},
"relationshipEdge": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"$ref": "#/$defs/componentId"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"example": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"minimal",
"typical",
"maximal"
],
"default": "typical"
},
"render_ready": {
"type": "boolean",
"default": false
},
"props": {
"type": "object"
},
"slots": {
"type": "object"
}
},
"additionalProperties": false
},
"tokenBindings": {
"type": "object",
"properties": {
"color": {
"type": "object",
"properties": {
"background": {
"$ref": "#/$defs/tokenReference"
},
"text": {
"$ref": "#/$defs/tokenReference"
},
"border": {
"$ref": "#/$defs/tokenReference"
},
"highlight": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
},
"typography": {
"type": "object",
"properties": {
"font_family": {
"$ref": "#/$defs/tokenReference"
},
"font_size": {
"$ref": "#/$defs/tokenReference"
},
"font_weight": {
"$ref": "#/$defs/tokenReference"
},
"line_height": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
},
"spacing": {
"type": "object",
"properties": {
"padding": {
"$ref": "#/$defs/tokenReference"
},
"margin": {
"$ref": "#/$defs/tokenReference"
},
"gap": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
},
"border": {
"type": "object",
"properties": {
"radius": {
"$ref": "#/$defs/tokenReference"
},
"width": {
"$ref": "#/$defs/tokenReference"
},
"color": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
},
"elevation": {
"type": "object",
"properties": {
"shadow": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
}
}intelligence.schema.json
View sourceCaptures agent-facing hints, behaviours, and evaluation rules. Guides AI agents on how to assemble, prompt, and verify components in the builder for reliable outcomes.
Full schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "../schemas/component.schema.json",
"title": "DSIS Component Schema (v2)",
"description": "Schema for individual design system components, optimized for AI agents.",
"type": "object",
"required": [
"id",
"name",
"category",
"version"
],
"properties": {
"$schema": {
"type": "string",
"const": "../schemas/component.schema.json"
},
"id": {
"$ref": "#/$defs/componentId",
"description": "Unique component identifier (kebab-case)."
},
"name": {
"type": "string",
"description": "Human-readable component name"
},
"description": {
"type": "string",
"maxLength": 2000
},
"category": {
"type": "string",
"enum": [
"base",
"atoms",
"molecules",
"organisms",
"templates",
"pages"
]
},
"version": {
"$ref": "#/$defs/semver"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"source": {
"type": "object",
"properties": {
"repo_url": {
"type": "string",
"format": "uri"
},
"sdc_path": {
"type": "string"
},
"docs_url": {
"type": "string",
"format": "uri"
},
"commit": {
"type": "string"
},
"extracted_by": {
"type": "string"
},
"last_updated": {
"type": "string",
"format": "date-time"
},
"extracted_from": {
"type": "object",
"description": "File sources used to extract this component definition.",
"properties": {
"component_yml": {
"type": "string"
},
"template": {
"type": "string"
},
"styles": {
"type": "string"
},
"javascript": {
"type": "string"
},
"stories": {
"type": "string"
},
"mixins": {
"type": "string"
},
"docs": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"capabilities": {
"type": "object",
"properties": {
"interactive": {
"type": "boolean",
"default": false
},
"requires_js": {
"type": "boolean",
"default": false
},
"server_renderable": {
"type": "boolean",
"default": true
},
"is_layout": {
"type": "boolean",
"default": false
},
"is_container": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"quality": {
"type": "object",
"properties": {
"maturity": {
"type": "string",
"enum": [
"experimental",
"stable",
"deprecated"
],
"default": "stable"
},
"docs_quality": {
"type": "string",
"enum": [
"LOW",
"MODERATE",
"HIGH"
]
},
"a11y_score": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": false
},
"platforms": {
"type": "object",
"properties": {
"drupal": {
"type": "object",
"properties": {
"version": {
"type": "string"
},
"sdc": {
"type": "boolean"
},
"namespace": {
"type": "string"
},
"module": {
"type": "string"
},
"schema_version": {
"type": "string"
},
"template": {
"type": "string"
},
"libraries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"css": {
"type": "object",
"properties": {
"base_class": {
"type": "string"
},
"modifiers": {
"type": "array",
"items": {
"type": "string"
}
},
"custom_properties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"html": {
"type": "object",
"properties": {
"template_engine": {
"type": "string",
"enum": [
"twig",
"handlebars",
"liquid",
"none"
]
},
"template_url": {
"type": "string",
"format": "uri"
},
"css_url": {
"type": "string",
"format": "uri"
},
"js_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
"props": {
"type": "object",
"description": "Component properties keyed by prop name.",
"additionalProperties": {
"$ref": "#/$defs/propDefinition"
}
},
"slots": {
"type": "object",
"description": "Named content insertion points with acceptance rules.",
"additionalProperties": {
"$ref": "#/$defs/slotDefinition"
}
},
"relationships": {
"$ref": "#/$defs/relationships"
},
"examples": {
"type": "array",
"items": {
"$ref": "#/$defs/example"
}
},
"token_bindings": {
"$ref": "#/$defs/tokenBindings"
},
"embedding_ref": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"dimensions": {
"type": "integer",
"minimum": 1
},
"storage_key": {
"type": "string"
},
"updated_at": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
},
"intelligence": {
"$ref": "./intelligence.schema.json"
}
},
"$defs": {
"componentId": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"semver": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-.]+)?(?:\\+[0-9A-Za-z-.]+)?$"
},
"tokenReference": {
"description": "Reference to a design token by name or CSS custom property.",
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"mode": {
"type": "string"
},
"fallback": {
"type": "string"
}
},
"required": [
"name"
],
"additionalProperties": false
}
]
},
"uiHints": {
"type": "object",
"properties": {
"control": {
"type": "string",
"enum": [
"text",
"textarea",
"select",
"toggle",
"number",
"url",
"code",
"json"
]
},
"group": {
"type": "string"
}
},
"additionalProperties": false
},
"propDefinition": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"string",
"number",
"boolean",
"enum",
"array",
"object",
"media",
"rich_text",
"url"
]
},
"required": {
"type": "boolean",
"default": false
},
"description": {
"type": "string"
},
"examples": {
"type": "array",
"items": {}
},
"implementation_note": {
"type": "string"
},
"ui": {
"$ref": "#/$defs/uiHints"
}
},
"allOf": [
{
"if": {
"properties": {
"type": {
"const": "string"
}
}
},
"then": {
"properties": {
"default": {
"type": "string"
},
"min_length": {
"type": "integer",
"minimum": 0
},
"max_length": {
"type": "integer",
"minimum": 0
},
"pattern": {
"type": "string"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "number"
}
}
},
"then": {
"properties": {
"default": {
"type": "number"
},
"min": {
"type": "number"
},
"max": {
"type": "number"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "boolean"
}
}
},
"then": {
"properties": {
"default": {
"type": "boolean"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "enum"
}
}
},
"then": {
"required": [
"options"
],
"properties": {
"options": {
"type": "array",
"items": {
"type": "string"
}
},
"default": {
"type": "string"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "array"
}
}
},
"then": {
"properties": {
"items": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "object"
},
{
"$ref": "#/$defs/componentId"
}
]
},
"min_items": {
"type": "integer",
"minimum": 0
},
"max_items": {
"type": "integer",
"minimum": 0
},
"default": {
"type": "array"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "object"
}
}
},
"then": {
"properties": {
"properties": {
"type": "object"
},
"default": {
"type": "object"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "media"
}
}
},
"then": {
"properties": {
"accepts": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "rich_text"
}
}
},
"then": {
"properties": {
"allowed_marks": {
"type": "array",
"items": {
"type": "string"
}
},
"allowed_blocks": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "url"
}
}
},
"then": {
"properties": {
"default": {
"type": "string",
"format": "uri"
}
}
}
}
],
"additionalProperties": true
},
"slotDefinition": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"content_kind": {
"type": "string",
"enum": [
"text",
"html",
"component",
"mixed"
],
"default": "component"
},
"accepts": {
"type": "array",
"items": {
"$ref": "#/$defs/componentId"
}
},
"cardinality": {
"type": "string",
"enum": [
"single",
"multiple"
],
"default": "multiple"
},
"min_items": {
"type": "integer",
"minimum": 0
},
"max_items": {
"type": "integer",
"minimum": 1
},
"required": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"relationships": {
"type": "object",
"properties": {
"requires": {
"type": "array",
"items": {
"$ref": "#/$defs/relationshipEdge"
}
},
"contains": {
"type": "array",
"items": {
"$ref": "#/$defs/relationshipEdge"
}
},
"alternatives": {
"type": "array",
"items": {
"$ref": "#/$defs/relationshipEdge"
}
},
"incompatible": {
"type": "array",
"items": {
"$ref": "#/$defs/relationshipEdge"
}
}
},
"additionalProperties": false
},
"relationshipEdge": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"$ref": "#/$defs/componentId"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"example": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"minimal",
"typical",
"maximal"
],
"default": "typical"
},
"render_ready": {
"type": "boolean",
"default": false
},
"props": {
"type": "object"
},
"slots": {
"type": "object"
}
},
"additionalProperties": false
},
"tokenBindings": {
"type": "object",
"properties": {
"color": {
"type": "object",
"properties": {
"background": {
"$ref": "#/$defs/tokenReference"
},
"text": {
"$ref": "#/$defs/tokenReference"
},
"border": {
"$ref": "#/$defs/tokenReference"
},
"highlight": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
},
"typography": {
"type": "object",
"properties": {
"font_family": {
"$ref": "#/$defs/tokenReference"
},
"font_size": {
"$ref": "#/$defs/tokenReference"
},
"font_weight": {
"$ref": "#/$defs/tokenReference"
},
"line_height": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
},
"spacing": {
"type": "object",
"properties": {
"padding": {
"$ref": "#/$defs/tokenReference"
},
"margin": {
"$ref": "#/$defs/tokenReference"
},
"gap": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
},
"border": {
"type": "object",
"properties": {
"radius": {
"$ref": "#/$defs/tokenReference"
},
"width": {
"$ref": "#/$defs/tokenReference"
},
"color": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
},
"elevation": {
"type": "object",
"properties": {
"shadow": {
"$ref": "#/$defs/tokenReference"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
}
}system.schema.json
View sourceSystem-wide metadata and constraints (distribution, accessibility, i18n, versioning). The builder applies these defaults across components and validates projects against policy.
Full schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.design-system.org/dsis/v1/system.schema.json",
"title": "Design System Metadata Schema (v2)",
"description": "Core metadata, distribution, taxonomy, and AI signals for a design system.",
"type": "object",
"required": [
"version",
"metadata"
],
"properties": {
"$schema": {
"type": "string",
"const": "https://schemas.design-system.org/dsis/v1/system.schema.json"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-.]+)?(?:\\+[0-9A-Za-z-.]+)?$"
},
"metadata": {
"type": "object",
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-.]+)?(?:\\+[0-9A-Za-z-.]+)?$"
},
"description": {
"type": "string",
"maxLength": 1000
},
"homepage": {
"type": "string",
"format": "uri"
},
"repository": {
"type": "string",
"format": "uri"
},
"license": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"drupal-theme",
"wordpress-theme",
"standalone",
"react-library"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"maintainer": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"organization": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"source": {
"type": "object",
"properties": {
"repo_url": {
"type": "string",
"format": "uri"
},
"docs_url": {
"type": "string",
"format": "uri"
},
"default_branch": {
"type": "string"
},
"commit": {
"type": "string"
}
},
"additionalProperties": false
},
"distribution": {
"type": "object",
"properties": {
"complete_schema": {
"type": "string",
"format": "uri"
},
"minimal_schema": {
"type": "string",
"format": "uri"
},
"components_base": {
"type": "string",
"format": "uri"
},
"npm_package": {
"type": "string"
},
"drupal_module": {
"type": "string"
},
"manifest_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": true
},
"requirements": {
"type": "object",
"properties": {
"drupal": {
"type": "string"
},
"php": {
"type": "string"
},
"node": {
"type": "string"
},
"wcag_level": {
"type": "string"
}
},
"additionalProperties": true
},
"statistics": {
"type": "object",
"properties": {
"components_total": {
"type": "integer"
},
"components_with_intelligence": {
"type": "integer"
},
"interactive_components": {
"type": "integer"
},
"patterns": {
"type": "integer"
},
"templates": {
"type": "integer"
},
"design_tokens": {
"type": "integer"
},
"a11y_scores_mean": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"docs_quality_mean": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": true
},
"taxonomy": {
"type": "object",
"properties": {
"categories": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"conventions": {
"type": "object",
"properties": {
"naming_prefix": {
"type": "string"
},
"css_namespace": {
"type": "string"
},
"id_case": {
"type": "string",
"enum": [
"kebab-case",
"camelCase",
"PascalCase",
"snake_case"
]
}
},
"additionalProperties": true
},
"component_manifest": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"category"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"has_intelligence": {
"type": "boolean"
},
"schema_url": {
"type": "string",
"format": "uri-reference"
},
"url": {
"type": "string",
"format": "uri-reference"
},
"hash": {
"type": "string"
}
},
"additionalProperties": false
}
},
"platform_support": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"ai_index": {
"type": "object",
"properties": {
"embedding_model": {
"type": "string"
},
"index_key": {
"type": "string"
},
"last_built": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
}
},
"additionalProperties": true
}tokens.schema.json
View sourceDesign tokens for colour, typography, spacing, and radii. AI agents map these to platform styles so generated UI is consistent and themable.
Full schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.design-system.org/dsis/v1/system.schema.json",
"title": "Design System Metadata Schema (v2)",
"description": "Core metadata, distribution, taxonomy, and AI signals for a design system.",
"type": "object",
"required": [
"version",
"metadata"
],
"properties": {
"$schema": {
"type": "string",
"const": "https://schemas.design-system.org/dsis/v1/system.schema.json"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-.]+)?(?:\\+[0-9A-Za-z-.]+)?$"
},
"metadata": {
"type": "object",
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-.]+)?(?:\\+[0-9A-Za-z-.]+)?$"
},
"description": {
"type": "string",
"maxLength": 1000
},
"homepage": {
"type": "string",
"format": "uri"
},
"repository": {
"type": "string",
"format": "uri"
},
"license": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"drupal-theme",
"wordpress-theme",
"standalone",
"react-library"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"maintainer": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"organization": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"source": {
"type": "object",
"properties": {
"repo_url": {
"type": "string",
"format": "uri"
},
"docs_url": {
"type": "string",
"format": "uri"
},
"default_branch": {
"type": "string"
},
"commit": {
"type": "string"
}
},
"additionalProperties": false
},
"distribution": {
"type": "object",
"properties": {
"complete_schema": {
"type": "string",
"format": "uri"
},
"minimal_schema": {
"type": "string",
"format": "uri"
},
"components_base": {
"type": "string",
"format": "uri"
},
"npm_package": {
"type": "string"
},
"drupal_module": {
"type": "string"
},
"manifest_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": true
},
"requirements": {
"type": "object",
"properties": {
"drupal": {
"type": "string"
},
"php": {
"type": "string"
},
"node": {
"type": "string"
},
"wcag_level": {
"type": "string"
}
},
"additionalProperties": true
},
"statistics": {
"type": "object",
"properties": {
"components_total": {
"type": "integer"
},
"components_with_intelligence": {
"type": "integer"
},
"interactive_components": {
"type": "integer"
},
"patterns": {
"type": "integer"
},
"templates": {
"type": "integer"
},
"design_tokens": {
"type": "integer"
},
"a11y_scores_mean": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"docs_quality_mean": {
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"additionalProperties": true
},
"taxonomy": {
"type": "object",
"properties": {
"categories": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"conventions": {
"type": "object",
"properties": {
"naming_prefix": {
"type": "string"
},
"css_namespace": {
"type": "string"
},
"id_case": {
"type": "string",
"enum": [
"kebab-case",
"camelCase",
"PascalCase",
"snake_case"
]
}
},
"additionalProperties": true
},
"component_manifest": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"category"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"has_intelligence": {
"type": "boolean"
},
"schema_url": {
"type": "string",
"format": "uri-reference"
},
"url": {
"type": "string",
"format": "uri-reference"
},
"hash": {
"type": "string"
}
},
"additionalProperties": false
}
},
"platform_support": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"ai_index": {
"type": "object",
"properties": {
"embedding_model": {
"type": "string"
},
"index_key": {
"type": "string"
},
"last_built": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false
}
},
"additionalProperties": true
}manifset.schema.json
View sourceLightweight registry of available components and categories. Enables agent-driven discovery, search by capability, and rapid insertion into the canvas.
Full schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.design-system.org/dsis/v1/manifest.schema.json",
"title": "Component Manifest Schema (v2)",
"description": "Catalog of available components for discovery and syncing.",
"type": "object",
"required": [
"version",
"components"
],
"properties": {
"$schema": {
"type": "string",
"const": "https://schemas.design-system.org/dsis/v1/manifest.schema.json"
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z-.]+)?(?:\\+[0-9A-Za-z-.]+)?$"
},
"generated": {
"type": "string",
"format": "date-time"
},
"base_url": {
"type": "string",
"format": "uri"
},
"components": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"category"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$"
},
"name": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"base",
"atoms",
"molecules",
"organisms",
"templates",
"pages"
]
},
"schema_url": {
"type": "string",
"format": "uri-reference"
},
"url": {
"type": "string",
"format": "uri-reference"
},
"has_intelligence": {
"type": "boolean"
},
"interactive": {
"type": "boolean"
},
"maturity": {
"type": "string",
"enum": [
"experimental",
"stable",
"deprecated"
]
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"hash": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}