{
  "$ref": "#/definitions/DtAnalysesAttendance",
  "definitions": {
    "DtAnalysesAttendance": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "person_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "given_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "family_names": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "organizations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "classification": {
                  "type": "string"
                },
                "parent_id": {
                  "type": "string"
                },
                "since": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string",
                          "format": "date"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "ISO 8601 date (YYYY-MM-DD). Start of membership in this organization."
                },
                "until": {
                  "anyOf": [
                    {
                      "anyOf": [
                        {
                          "not": {}
                        },
                        {
                          "type": "string",
                          "format": "date"
                        }
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "ISO 8601 date (YYYY-MM-DD). End of membership in this organization. Null/omitted if current."
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            },
            "description": "Optional organizations relevant for this person (e.g., parliamentary group/party)."
          },
          "since": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "format": "date"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO 8601 date (YYYY-MM-DD). Null/omitted if unknown or not bounded."
          },
          "until": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "string",
                    "format": "date"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "ISO 8601 date (YYYY-MM-DD). Null/omitted if unknown or not bounded."
          },
          "vote_events_total": {
            "type": "integer",
            "minimum": 0
          },
          "present": {
            "type": "integer",
            "minimum": 0
          },
          "absent": {
            "type": "integer",
            "minimum": 0
          },
          "present_share": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "not": {}
                  },
                  {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "present / vote_events_total. Null/omitted if undefined (e.g., total is 0)."
          },
          "extras": {
            "type": "object",
            "additionalProperties": {},
            "description": "Additional metadata fields not covered by the core schema."
          }
        },
        "required": [
          "person_id",
          "vote_events_total",
          "present",
          "absent"
        ],
        "additionalProperties": false
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}