{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "CaptionSign Human Provider Roster",
  "type": "object",
  "required": [
    "version",
    "providers"
  ],
  "properties": {
    "version": {
      "const": 1
    },
    "providers": {
      "type": "array",
      "maxItems": 500,
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "role",
          "languages",
          "modes"
        ],
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "minLength": 1
          },
          "role": {
            "enum": [
              "interpreter",
              "specialist"
            ]
          },
          "languages": {
            "type": "array",
            "minItems": 1,
            "items": {
              "enum": [
                "ASL",
                "BASL",
                "BSL",
                "LSF",
                "Libras",
                "Auslan",
                "NZSL",
                "ISL",
                "JSL",
                "LSM",
                "CSL"
              ]
            }
          },
          "modes": {
            "type": "array",
            "minItems": 1,
            "items": {
              "enum": [
                "virtual",
                "in-person"
              ]
            }
          },
          "specialties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "bookingUrl": {
            "type": "string"
          },
          "availability": {
            "enum": [
              "available",
              "busy",
              "offline",
              "unknown"
            ]
          },
          "availabilityUpdatedAt": {
            "type": "string"
          },
          "qualifications": {
            "type": "string"
          }
        }
      }
    }
  }
}