{
  "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' (used for govity denominator). E.g. ['yes', 'no', 'abstain'].",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "absent_options",
      "type": "array",
      "description": "Vote option values that count as 'absent' (not present, 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": "government_groups",
      "type": "array",
      "description": "Organization IDs of groups that form the government.",
      "constraints": {
        "required": true
      }
    },
    {
      "name": "government_members",
      "type": "array",
      "description": "Person IDs of individual government members not covered by government_groups (e.g. independents)."
    },
    {
      "name": "extras",
      "type": "object",
      "description": "Additional metadata fields not covered by the core schema."
    }
  ]
}