{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "definitions": {
    "Esquio": {
      "type": ["object", "null"],
      "properties": {
        "Products": {
          "type": ["array", "null"],
          "items": {
            "$ref": "#/definitions/Product"
          }
        }
      },
      "required": ["Products"]
    },
    "Feature": {
      "type": ["object", "null"],
      "properties": {
        "Name": {
          "type": ["string", "null"]
        },
        "Enabled": {
          "type": "boolean"
        },
        "Toggles": {
          "type": ["array", "null"],
          "items": {
            "$ref": "#/definitions/Toggle"
          }
        }
      },
      "required": ["Name", "Enabled", "Toggles"]
    },
    "Product": {
      "type": ["object", "null"],
      "properties": {
        "Name": {
          "type": ["string", "null"]
        },
        "Features": {
          "type": ["array", "null"],
          "items": {
            "$ref": "#/definitions/Feature"
          }
        }
      },
      "required": ["Name", "Features"]
    },
    "Toggle": {
      "type": ["object", "null"],
      "properties": {
        "Type": {
          "type": ["string", "null"]
        },
        "Parameters": {}
      },
      "required": ["Type", "Parameters"]
    }
  },
  "id": "https://json.schemastore.org/esquio.json",
  "properties": {
    "Esquio": {
      "$ref": "#/definitions/Esquio"
    }
  },
  "required": ["Esquio"],
  "title": "JSON schema for Esquio configuration files",
  "type": "object"
}