{
  "fields": [
    {
      "name": "since",
      "type": "string",
      "description": "ISO 8601 date (YYYY-MM-DD). Only vote events on or after this date are included. Null/omitted = no lower bound."
    },
    {
      "name": "until",
      "type": "string",
      "description": "ISO 8601 date (YYYY-MM-DD). Only vote events on or before this date are included. Null/omitted = no upper bound."
    },
    {
      "name": "present_options",
      "type": "array",
      "description": "Vote option values that count as 'present'. E.g. ['yes', 'no', 'abstain'].",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "absent_options",
      "type": "array",
      "description": "Vote option values that count as 'absent' (zero contribution to direction). E.g. ['absent'].",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "yes_options",
      "type": "array",
      "description": "Vote option values that mean 'voted yes' (+1 active, +1 to direction). E.g. ['yes'].",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "no_options",
      "type": "array",
      "description": "Vote option values that mean 'voted no' (-1 active, -1 to direction). E.g. ['no', 'no_with_explanation'].",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "extras",
      "type": "object",
      "description": "Additional metadata fields not covered by the core schema."
    }
  ]
}