{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {
        "ThemePropertyChange": {
            "properties": {
                "name": {
                    "description": "Name of the theme property",
                    "type": "string"
                },
                "owner": {
                    "description": "Theming function this parameter belongs to",
                    "type": "string"
                },
                "remove": {
                    "description": "Remove directive/component/property",
                    "type": "boolean"
                },
                "replaceWith": {
                    "description": "Replace original selector/property with new one",
                    "type": "string"
                }
            },
            "required": [
                "name",
                "owner"
            ],
            "type": "object"
        },
        "ThemeVariableChange": {
            "properties": {
                "name": {
                    "description": "Name of the theme variable",
                    "type": "string"
                },
                "remove": {
                    "description": "Remove directive/component/property",
                    "type": "boolean"
                },
                "replaceWith": {
                    "description": "Replace original selector/property with new one",
                    "type": "string"
                }
            },
            "required": [
                "name"
            ],
            "type": "object"
        }
    },
    "properties": {
        "changes": {
            "description": "An array of changes to theme function properties",
            "items": {
                "anyOf": [
                    {
                        "$ref": "#/definitions/ThemePropertyChange"
                    },
                    {
                        "$ref": "#/definitions/ThemeVariableChange"
                    }
                ]
            },
            "type": "array"
        }
    },
    "required": [
        "changes"
    ],
    "type": "object"
}

