{ "$id": "https://git.drupalcode.org/project/drupal/-/raw/HEAD/core/assets/schemas/v1/metadata-full.schema.json", "$schema": "http://json-schema.org/draft-04/schema#", "$defs": { "slotDefinition": { "type": "object", "patternProperties": { "^[a-zA-Z0-9_-]$": { "type": "object", "properties": { "title": { "type": "string", "title": "Title" }, "description": { "type": "string", "title": "Description" }, "examples": { "type": "array", "items": { "type": "string" } } } } } } }, "type": "object", "required": [ "extension_type", "id", "library", "machineName", "path", "provider", "template" ], "properties": { "$schema": { "type": "string", "format": "uri" }, "documentation": { "type": "string", "title": "Documentation", "description": "The HTML contents of the parsed README.md file.", "examples": [ "This component is used in a particular manner." ] }, "extension_type": { "type": "string", "title": "Extension Type", "description": "This component was defined either in a module or in a theme", "enum": [ "module", "theme" ] }, "id": { "type": "string", "title": "ID", "description": "The plugin ID.", "pattern": "^[a-z]([a-zA-Z0-9_-]*[a-zA-Z0-9])*:[a-z]([a-zA-Z0-9_-]*[a-zA-Z0-9])*$" }, "library": { "type": ["object", "array"], "additionalProperties": false, "properties": { "css": { "$ref": "metadata.schema.json#/$defs/cssDefinition" }, "js": { "$ref": "metadata.schema.json#/$defs/jsAttributes" }, "dependencies": { "type": "array", "items": { "type": "string" } } } }, "machineName": { "type": "string", "title": "Machine Name", "description": "Used in combination with 'provider' to create the component ID: {provider}:{machineName}. Component ID used for reference on other Twig templates and other parts of the system", "pattern": "^[a-z]([a-zA-Z0-9_-]*[a-zA-Z0-9])*$", "examples": [ "button", "module_23F" ] }, "name": { "type": "string", "title": "Name", "description": "Human readable version of the machineName", "examples": [ "Button", "Module 23F" ] }, "path": { "type": "string", "title": "Path", "description": "The path to the single directory component", "examples": [ "/var/www/html/web/modules/contrib/sdc_examples/components/my-card" ] }, "provider": { "type": "string", "title": "Provider", "description": "The name of the module or theme that contains the component.", "examples": [ "umami", "sdc_examples" ] }, "description": { "type": "string", "title": "Description", "description": "Human readable description for the component", "examples": [ "Plain button. Only available for use in other components. Do not include directly." ] }, "status": { "type": "string", "title": "Development Status", "description": "Use this property to identify if the component can be safely used in production.", "enum": [ "experimental", "stable", "deprecated", "obsolete" ] }, "props": { "$ref": "http://json-schema.org/draft-04/schema#" }, "slots": { "$ref": "metadata.schema.json#/$defs/slotDefinition" }, "template": { "type": "string", "title": "Template", "description": "The file name of the Twig template.", "examples": [ "my-card.twig" ] }, "libraryOverrides": { "$ref": "metadata.schema.json#/$defs/libraryDefinition" } } }