{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "extensions": {
      "type": "array",
      "description": "Extension points",
      "items": {
        "properties": {
          "type": {"type": "string"},
          "order": {"type": "number"},
          "title": {"type": "string"},
          "options": {
            "type": "array",
            "items": {
              "properties": {
                "title": {"type": "string"},
                "category": {"type": "string"}
              }
            }
          }
        },
        "if": {
          "properties": {"type": {"const": "action"}}
        },
        "then": {
          "properties": {
            "bindings": {
              "type": "array",
              "items": {
                "required": ["shortcut"],
                "properties": {
                  "shortcut": {
                    "type": "string",
                    "pattern": "^[\\S]+(\\s[\\S]+)?$"
                  },
                  "platform": {"type": "string"},
                  "keybindSets": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": ["devToolsDefault", "vsCode"]
                    }
                  }
                }
              }
            }
          },
          "anyOf": [
            {
              "required": ["title"]
            },
            {
              "required": ["options"],
              "properties": {
                "options": {
                  "minItems": 1,
                  "items": {
                    "required": ["title"]
                  }
                }
              }
            }
          ],
          "required": ["category"]
        }
      }
    },
    "dependencies": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "modules": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "resources": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "experiment": {
      "type": "string"
    }
  },
  "definitions": {
  }
}
