{
  "$ref": "#/definitions/DtMemberships",
  "definitions": {
    "DtMemberships": {
      "type": "array",
      "items": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string",
                "description": "Label describing the membership."
              },
              "role": {
                "type": "string",
                "description": "The role fulfilled (string)."
              },
              "member_id": {
                "type": "string",
                "description": "If the member is an org, its ID."
              },
              "person_id": {
                "type": "string",
                "description": "If the member is a person, their ID."
              },
              "organization_id": {
                "type": "string",
                "description": "Organization in which the person/org is a member."
              },
              "post_id": {
                "type": "string",
                "description": "Post held by the member (optional)."
              },
              "on_behalf_of_id": {
                "type": "string",
                "description": "Org on whose behalf the person is a member."
              },
              "area_id": {
                "type": "string",
                "description": "Related geographic area ID."
              },
              "start_date": {
                "type": "string",
                "description": "YYYY-MM-DD start."
              },
              "end_date": {
                "type": "string",
                "description": "YYYY-MM-DD end."
              },
              "contact_details": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "value": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "type",
                    "value"
                  ],
                  "additionalProperties": false
                }
              },
              "links": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "additionalProperties": false
                }
              },
              "sources": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "additionalProperties": false
                }
              },
              "created_at": {
                "type": "string"
              },
              "updated_at": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}