{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "JSON schema for multi type testing",
    "description": "This is a multi type test schema :)",
    "definitions": {
        "action": {
            "type": "object",
            "properties": {
                "default_title": {
                    "description": "Tooltip for the main toolbar icon.",
                    "type": "string"
                },
                "default_popup": {
                    "description": "The popup appears when the user clicks the icon.",
                    "$ref": "#/definitions/icon"
                },
                "default_icon": {
                    "description": "Icon for the main toolbar.",
                    "type": "object",
                    "properties": {
                        "19": {
                            "$ref": "#/definitions/icon"
                        },
                        "38": {
                            "$ref": "#/definitions/icon"
                        }
                    }
                }
            }
        },
        "icon": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "suggested_key": {
                    "type": "object",
                    "patternProperties": {
                        "^(default|mac|windows|linux|chromeos)$": {
                            "type": "string",
                            "pattern": "^(Ctrl|Command|MacCtrl|Alt|Option)\\+(Shift\\+)?[A-Z]"
                        }
                    },
                    "additionalProperties": false
                }
            }
        },
        "command": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "suggested_key": {
                    "type": "object",
                    "patternProperties": {
                        "^(default|mac|windows|linux|chromeos)$": {
                            "type": "string",
                            "pattern": "^(Ctrl|Command|MacCtrl|Alt|Option)\\+(Shift\\+)?[A-Z]"
                        }
                    },
                    "additionalProperties": false
                }
            }
        }
    },
    "type": "object",
    "properties": {
        "model_version": {
            "description": "version of the current model",
            "type": "number",
            "enum": [
                1
            ],
            "maximum": 1,
            "minimum": 1
        },
        "default_locale": {
            "description": "Specifies the subdirectory of _locales that contains the default strings for this extension.",
            "type": "string",
            "default": "en"
        }
    }
}