{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/Extension", "title": "Extension", "type": "object", "description": "A reusable extension that encapsulates experiment logic", "properties": { "id": { "type": "integer", "format": "int64", "description": "Unique identifier for the extension" }, "project_id": { "type": "integer", "format": "int64", "description": "The project this extension belongs to" }, "name": { "type": "string", "description": "Human-readable name of the extension" }, "description": { "type": "string", "description": "Description of the extension" }, "edit_url": { "type": "string", "format": "uri", "description": "URL used in the visual editor" }, "implementation": { "type": "object", "description": "The implementation details for the extension", "properties": { "apply_js": { "type": "string", "description": "JavaScript code to apply the extension" }, "undo_js": { "type": "string", "description": "JavaScript code to undo the extension" }, "html": { "type": "string", "description": "HTML content of the extension" }, "css": { "type": "string", "description": "CSS styles of the extension" } } } } }