{
  "$ref": "#/definitions/Pollster",
  "definitions": {
    "Pollster": {
      "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."
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}