{
  "fields": [
    {
      "name": "person_id",
      "type": "string",
      "description": "Identifier of the person (voter_id from votes-table.dt).",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "name",
      "type": "string"
    },
    {
      "name": "given_names",
      "type": "array"
    },
    {
      "name": "family_names",
      "type": "array"
    },
    {
      "name": "organizations",
      "type": "array",
      "description": "Optional organizations relevant for this person (e.g., parliamentary group/party)."
    },
    {
      "name": "dims",
      "type": "array",
      "description": "Weighted PCA coordinates, one element per dimension (n_dims from definition, default 3). Index 0 = first dimension. Null per element if the person was excluded (included=false).",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "weight",
      "type": "number",
      "description": "Weighted attendance share used to determine inclusion. 0 = never voted in any weighted vote event, 1 = voted in all.",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "included",
      "type": "boolean",
      "description": "Whether this person met the lo_limit threshold and is included in the global result.",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "since",
      "type": "string",
      "description": "ISO 8601 date (YYYY-MM-DD). Null/omitted if unknown or not bounded."
    },
    {
      "name": "until",
      "type": "string",
      "description": "ISO 8601 date (YYYY-MM-DD). Null/omitted if unknown or not bounded."
    },
    {
      "name": "extras",
      "type": "object",
      "description": "Additional metadata fields passed through from the persons input."
    }
  ]
}