{
  "$ref": "#/definitions/Pollsters",
  "definitions": {
    "Pollsters": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[a-z0-9-]+$",
            "description": "Stable slug identifier, e.g. \"kantar-cz\", \"stem\", \"cvvm\". Referenced by Poll.pollster."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Full official name of the polling agency, e.g. \"Kantar CZ\", \"STEM\", \"CVVM\"."
          },
          "short_name": {
            "type": "string",
            "description": "Abbreviated display name for charts and tables, e.g. \"Kantar\", \"STEM\". Consistent with Choice.short_name."
          },
          "abbreviation": {
            "type": "string",
            "description": "Very short abbreviation for space-constrained contexts, e.g. \"KNT\", \"STM\"."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "URL of the pollster's website or primary source page."
          },
          "score": {
            "type": [
              "number",
              "null"
            ],
            "description": "Poll-of-polls quality/reliability score for this pollster. Used as a weight multiplier when computing weighted poll averages. Null means the pollster is not currently scored (excluded from weighted averages). Scale and interpretation are pipeline-defined."
          },
          "region": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              }
            ],
            "description": "Region(s) the pollster primarily operates in. ISO 3166-1 alpha-2 or ISO 3166-2 codes."
          },
          "extras": {
            "type": "object",
            "additionalProperties": {},
            "description": "Extension point for additional fields."
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false,
        "description": "A polling company or research institution.\n\nLayer: reference data\n\nPollster.id is the stable key referenced by Poll.pollster. Storing pollster metadata separately allows consistent weighting, house-effect correction, and attribution across all polls."
      },
      "description": "Array of Pollster objects."
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}