{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "definitions": {
    "commands": {
      "type": "object",
      "description": "The friendly name of the command.",
      "required": ["fileName"],
      "properties": {
        "fileName": {
          "type": "string",
          "description": "The name of the executable file name. Example: \"cmd.exe\"."
        },
        "workingDirectory": {
          "type": "string",
          "description": "Specify a relative or absolute directory path."
        },
        "arguments": {
          "type": "string",
          "description": "The arguments to pass to the executable file."
        }
      }
    },
    "vsbindings": {
      "type": "array",
      "description": "A Visual Studio event that a command can be bound to.",
      "items": {
        "type": "string"
      }
    }
  },
  "description": "Schema for bundleconfig.json files",
  "id": "https://json.schemastore.org/commands.json",
  "properties": {
    "commands": {
      "description": "A list of commands.",
      "additionalProperties": {
        "$ref": "#/definitions/commands"
      }
    },
    "-vs-binding": {
      "type": "object",
      "description": "Specify any Visual Studio event bindings.",
      "properties": {
        "AfterBuild": {
          "$ref": "#/definitions/vsbindings"
        },
        "BeforeBuild": {
          "$ref": "#/definitions/vsbindings"
        },
        "Clean": {
          "$ref": "#/definitions/vsbindings"
        },
        "ProjectOpen": {
          "$ref": "#/definitions/vsbindings"
        }
      }
    }
  },
  "type": "object"
}
