{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.leoverlay.com/schemas/unique-prices-v1.schema.json",
  "title": "Unique and set prices v1",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "cycle",
    "catalogueRevision",
    "quotes"
  ],
  "properties": {
    "schemaVersion": {
      "const": 1
    },
    "cycle": {
      "type": "string"
    },
    "catalogueRevision": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[0-9a-f]{40}$"
    },
    "quotes": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "identity",
          "snapshotAt",
          "expiresAt",
          "status",
          "medianGold",
          "listingCount"
        ],
        "properties": {
          "identity": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "uniqueId",
              "legendaryPotential",
              "variantAffixIds"
            ],
            "properties": {
              "uniqueId": {
                "type": "integer",
                "minimum": 0
              },
              "legendaryPotential": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4
              },
              "variantAffixIds": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "type": "integer",
                  "minimum": 0
                }
              }
            }
          },
          "snapshotAt": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          },
          "expiresAt": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          },
          "status": {
            "enum": [
              "available",
              "last-known",
              "insufficient-data",
              "stale",
              "unavailable"
            ]
          },
          "medianGold": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "listingCount": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "lastKnownAt": {
            "type": "number",
            "minimum": 0
          }
        }
      }
    }
  }
}
