{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Product set",
  "type": "array",
  "items": {
    "$ref": "#/definitions/Product"
  },
  "definitions": {
    "Product": {
      "id": "Product",
      "type": "object",
      "properties": {
        "id": {
          "description": "The unique identifier for a product",
          "type": "number",
          "examples": [1234, 5678]
        },
        "name": {
          "type": "string",
          "examples": ["thingy"],
          "enum": ["thingy", "feverblister"]
        },
        "price": {
          "type": "number",
          "minimum": 0,
          "exclusiveMinimum": true
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "uniqueItems": true
        },
        "dimensions": {
          "type": "object",
          "properties": {
            "length": {
              "type": "number"
            },
            "width": {
              "type": "number"
            },
            "height": {
              "type": "number"
            }
          },
          "required": ["length", "width", "height"]
        },
        "prop": {
          "$ref": "#/definitions/Prop"
        }
      },
      "required": ["id", "name", "price"]
    },
    "Prop": {
      "properties": {
        "name": {
          "type": "string"
        }
      }
    }
  }
}
