{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "description": "A parameter",
  "required": ["name", "valuetype", "behavior"],
  "properties": {
    "name": { "type": "string", "description": "The parameter's name" },
    "desc": { "type": "string", "description": "A short description of what the parameter does" },
    "substitute": {
      "type": "string",
      "description": "A string to search in the code and replace with the parameter's value"
    },
    "valuetype": {
      "type": "string",
      "description": "The parameter's type",
      "enum": [
        "address",
        "display",
        "string",
        "trstring",
        "number",
        "bool",
        "color",
        "enum",
        "global"
      ]
    },
    "behavior": {
      "type": "string",
      "enum": ["mandatory", "optional", "hidden"]
    },
    "defaultvalue": { "type": "string" },
    "config": {
      "type": "string",
      "description": "Holds possible values in enum parameters",
      "examples": ["Yes;No"]
    },
    "group": { "type": "string" },
    "target": {
      "type": "object",
      "properties": {
        "namespaceIndex": { "type": "integer" },
        "name": { "type": "string" }
      },
      "required": ["namespaceIndex", "name"],
      "additionalProperties": false
    }
  },
  "defaultSnippets": [
    {
      "label": "New parameter",
      "description": "Creates an additional parameter",
      "body": { "name": "$1", "valuetype": "$2", "behavior": "$3" }
    }
  ]
}
