{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://lists.metix.ai/schema/list-1.1.json",
  "title": "Metix Lists 1.1",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "schema_version": {
      "const": "1.1"
    },
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$"
    },
    "title": {
      "type": "string",
      "minLength": 1
    },
    "category": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
    },
    "topic": {
      "enum": [
        "sector",
        "city",
        "state",
        "role"
      ]
    },
    "city": {
      "type": "string"
    },
    "state": {
      "type": "string"
    },
    "collected": {
      "type": "string",
      "format": "date"
    },
    "updated": {
      "type": "string",
      "format": "date"
    },
    "qualified_count": {
      "type": "integer",
      "minimum": 12
    },
    "published_count": {
      "type": "integer",
      "minimum": 12,
      "maximum": 300
    },
    "selection": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "method": {
          "enum": [
            "all_qualified",
            "fixed_hash"
          ]
        },
        "cap": {
          "enum": [
            300
          ]
        },
        "hash": {
          "enum": [
            null,
            "sha256_linkedin_url"
          ]
        },
        "display_order": {
          "const": "name_ascending"
        },
        "candidate_pool_size": {
          "type": "integer",
          "minimum": 0
        }
      },
      "required": [
        "method",
        "cap",
        "hash",
        "display_order",
        "candidate_pool_size"
      ]
    },
    "geography": {
      "type": "string",
      "minLength": 1
    },
    "inclusion": {
      "type": "string",
      "minLength": 1
    },
    "people": {
      "type": "array",
      "minItems": 12,
      "maxItems": 300,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "collected": {
            "type": "string",
            "format": "date"
          },
          "full_name": {
            "type": "string",
            "minLength": 1
          },
          "current_title": {
            "type": "string",
            "minLength": 1
          },
          "current_company": {
            "type": "string",
            "minLength": 1
          },
          "location": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "city": {
                "type": "string",
                "minLength": 1
              },
              "state": {
                "type": "string",
                "minLength": 1
              },
              "country": {
                "const": "United States"
              }
            },
            "required": [
              "city",
              "state",
              "country"
            ]
          },
          "linkedin_url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://www\\.linkedin\\.com/in/[\\w%.-]+$"
          },
          "also_current": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "match": {
            "enum": [
              "company",
              "title",
              "industry",
              "experience"
            ]
          },
          "match_text": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "collected",
          "full_name",
          "current_title",
          "current_company",
          "location",
          "linkedin_url",
          "also_current",
          "match",
          "match_text"
        ]
      }
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "source": {
      "const": "Mira"
    },
    "methodology": {
      "type": "string",
      "format": "uri"
    },
    "$schema": {
      "const": "https://lists.metix.ai/schema/list-1.1.json"
    }
  },
  "required": [
    "schema_version",
    "slug",
    "title",
    "category",
    "city",
    "state",
    "collected",
    "updated",
    "qualified_count",
    "published_count",
    "selection",
    "geography",
    "inclusion",
    "people",
    "url",
    "source",
    "methodology",
    "$schema"
  ]
}
