{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "required": [
        "name",
        "description"
    ],
    "properties": {
        "name": {
            "type": "string",
            "description": "The name of the control."
        },
        "description": {
            "type": "string",
            "description": "A short description of the purpose of this control."
        },
        "integration": {
            "type": "object",
            "description": "How this control should be loaded by the LaxarJS runtime.",
            "properties": {
                "technology": {
                    "type": "string",
                    "description": "Underlying technology of the control, which will be used to load the controller and template.",
                    "default": "plain"
                }
            },
            "default": {},
            "additionalProperties": false
        },
        "controls": {
            "type": "array",
            "description": "Each control as a path that can be resolved using the module system.",
            "default": [],
            "items": {
                "type": "string"
            }
        },
        "templateSource": {
            "type": "string",
            "description": "The location of the control's HTML template."
        },
        "styleSource": {
            "type": "string",
            "description": "The location of the control's stylesheet."
        },
        "assets": {
            "type": "array",
            "description": "A list of files to make available as raw content via the artifact provider API.",
            "items": {
                "type": "string"
            }
        },
        "assetUrls": {
            "type": "array",
            "description": "A list of files to make available as URLs via the artifact provider API.",
            "items": {
                "type": "string"
            }
        },
        "assetsForTheme": {
            "type": "array",
            "description": "A list of themed files to make available as raw content via the artifact provider API.",
            "items": {
                "type": "string"
            }
        },
        "assetUrlsForTheme": {
            "type": "array",
            "description": "A list of themed files to make available as URLs via the artifact provider API.",
            "items": {
                "type": "string"
            }
        }
    },
    "additionalProperties": false
}