{
  "fields": [
    {
      "name": "person_id",
      "type": "string",
      "description": "Identifier of the person (voter_id from votes-table.dt).",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "period_index",
      "type": "integer",
      "description": "Zero-based index of the time period within the full series.",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "period_start",
      "type": "date",
      "description": "ISO 8601 date (YYYY-MM-DD). Inclusive start of the time period.",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "period_end",
      "type": "date",
      "description": "ISO 8601 date (YYYY-MM-DD). Inclusive end of the time period.",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "period_label",
      "type": "string",
      "description": "Human-readable label for the time period (e.g. '1. pol. 2021', 'Q1 2021')."
    },
    {
      "name": "dims",
      "type": "array",
      "description": "Weighted projection of the person into the global PCA eigenbasis for this period. One element per dimension (same n_dims as global output). Null per element if person was excluded.",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "included",
      "type": "boolean",
      "description": "Whether this person met the lo_limit_time threshold for this period.",
      "constraints": {
        "required": true
      }
    }
  ]
}