content: {
    "$defs": {
      "address": {
        "properties": {
          "cityIds": {
            "$ref": "#/$defs/ids/cities",
            "title": "The IDs of cities to which this address belongs"
          },
          "corporationIds": {
            "$ref": "#/$defs/ids/corporations",
            "description": "The IDs of corporations situated at this address"
          },
          "fullAddress": {
            "default": "",
            "examples": [
              "Nizzaallee 4\nD-52072\nAachen"
            ],
            "title": "The postal address",
            "type": "string"
          },
          "hidden": {
            "$ref": "#/$defs/baseModel/hidden"
          },
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "address_aachen_0"
            ]
          },
          "latitude": {
            "maximum": 90,
            "minimum": -90,
            "title": "The latitude at which to set the pin",
            "type": "number"
          },
          "longitude": {
            "maximum": 180,
            "minimum": -180,
            "title": "The longitude at which to set the pin",
            "type": "number"
          },
          "name": {
            "description": "The name of this address, house or location",
            "title": "Name",
            "type": "string"
          },
          "pointOfInterestIds": {
            "$ref": "#/$defs/ids/pointsOfInterest",
            "description": "IDs of points of interest situated at this address"
          }
        },
        "required": [
          "id",
          "latitude",
          "longitude"
        ],
        "type": "object"
      },
      "baseModel": {
        "hidden": {
          "description": "If true, the object is not shown in the app",
          "title": "Hidden",
          "type": [
            "boolean",
            "null"
          ]
        },
        "id": {
          "description": "The unique ID of this object",
          "title": "ID",
          "type": "string"
        }
      },
      "city": {
        "examples": [
          {
            "addressIds": [
              "address_aachen_0",
              "address_aachen_1",
              "address_aachen_2"
            ],
            "countryId": "country_de",
            "id": "city_de_aachen",
            "name": "Aachen",
            "translationKey": "CITY_AACHEN"
          }
        ],
        "properties": {
          "addressIds": {
            "$ref": "#/$defs/ids/addresses",
            "description": "IDs of addresses in this city"
          },
          "countryId": {
            "$ref": "#/$defs/ids/country"
          },
          "hidden": {
            "$ref": "#/$defs/baseModel/hidden"
          },
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "city_de_aachen"
            ]
          },
          "name": {
            "examples": [
              "Aachen"
            ],
            "title": "The name of the city in its local language",
            "type": "string"
          },
          "translationKey": {
            "$ref": "#/$defs/translationKey"
          }
        },
        "required": [
          "countryId",
          "id",
          "name",
          "translationKey"
        ],
        "title": "A city belonging to a country and containing a number of addresses",
        "type": "object"
      },
      "colour": {
        "description": "A colour",
        "properties": {
          "colourFamilyIds": {
            "$ref": "#/$defs/ids/colourFamilies",
            "description": "The IDs of the colour families that this colour is a shade of",
            "examples": [
              "colour_family_blue"
            ]
          },
          "colourValue": {
            "$ref": "#/$defs/colourValue"
          },
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "colour_blue"
            ]
          },
          "inColours": {
            "$ref": "#/$defs/ids/corporations",
            "description": "IDs of corporations using this colour",
            "examples": [
              [
                "corporation_de_aachen_corps_palaeoteutonia",
                "corporation_de_aachen_ab_alania"
              ]
            ]
          },
          "translationKey": {
            "$ref": "#/$defs/translationKey",
            "examples": [
              "COLOUR_BLUE"
            ]
          }
        },
        "required": [
          "colourFamilyIds",
          "id",
          "translationKey",
          "colourValue"
        ],
        "title": "Colour",
        "type": "object"
      },
      "colourFamily": {
        "description": "A colour family",
        "properties": {
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "colour_blue"
            ]
          },
          "memberColourIds": {
            "$ref": "#/$defs/ids/colourFamilies",
            "examples": [
              "colour_family_red"
            ]
          },
          "sampleColourValue": {
            "$ref": "#/$defs/colourValue",
            "description": "A colour value representing all shades of the family"
          },
          "translationKey": {
            "$ref": "#/$defs/translationKey"
          }
        },
        "required": [
          "id",
          "memberColourIds",
          "translationKey"
        ],
        "title": "ColourFamily",
        "type": "object"
      },
      "colourValue": {
        "description": "How to generate this colour in the app",
        "examples": [
          "#0000FF",
          "#0000FF00",
          "blue",
          "rgba(0, 150, 255, 1.0)",
          "rgb(0, 150, 255)"
        ],
        "title": "Colour value",
        "type": "string"
      },
      "corporation": {
        "examples": [
          {
            "addressId": "address_aachen_29",
            "colours": [
              {
                "colourIds": [
                  "colour_red_crimson",
                  "colour_white",
                  "colour_pink"
                ]
              },
              {
                "colourIds": [
                  "colour_red_crimson",
                  "colour_white",
                  "colour_red_crimson"
                ]
              }
            ],
            "coloursPrinciple": 5,
            "eventIds": [
              "event_christmas"
            ],
            "fencingPrinciple": 1,
            "foundationDate": "1910",
            "id": "corporation_d_aachen_kdstv_marchia",
            "indicatorColourId": "ind_green",
            "longName": "KDStV Marchia (Breslau) zu Aachen im CV",
            "mail": "chargen@marchia.de",
            "motto": "Mens agitat molem!",
            "organisationIds": [
              "organisation_cv"
            ],
            "phone": "+49 241 18984012",
            "regularsTable": "Donnerstag",
            "shortName": "KDStV Marchia",
            "website": "www.marchia.de"
          }
        ],
        "properties": {
          "addressId": {
            "$ref": "#/$defs/mapDisplayable/addressId",
            "description": "The ID of the address at which this corporation is situated"
          },
          "colours": {
            "description": "An array of couleur identifying or worn by a corporation",
            "examples": [
              [
                {
                  "colourIds": [
                    "colour_red_crimson",
                    "colour_white",
                    "colour_pink"
                  ]
                },
                {
                  "colourIds": [
                    "colour_red_crimson",
                    "colour_white",
                    "colour_red_crimson"
                  ]
                }
              ]
            ],
            "items": {
              "description": "Represents a sash-like collection of colours, such as a tricolore",
              "examples": [
                {
                  "colourIds": [
                    "colour_red_crimson",
                    "colour_white",
                    "colour_pink"
                  ]
                },
                {
                  "baseColourId": "colour_white",
                  "colourIds": [
                    "colour_black",
                    "colour_green"
                  ]
                }
              ],
              "properties": {
                "baseColourId": {
                  "$ref": "#/$defs/ids/colour",
                  "description": "The ID of the colour to use as a background for the colours defined in colourIds, which will be inset"
                },
                "colourIds": {
                  "description": "The IDs of the colours, top to bottom",
                  "items": {
                    "$ref": "#/$defs/ids/colour"
                  },
                  "title": "Colour IDs",
                  "type": "array"
                },
                "percussion": {
                  "$ref": "#/$defs/ids/colour",
                  "description": "The ID of the colour to use as a percussion for the colours defined in colourIds, which will be inset. Narrower in height than a baseColour"
                }
              },
              "required": [
                "colourIds"
              ],
              "title": "Couleur",
              "type": "object"
            },
            "title": "Colours / Couleur",
            "type": "array"
          },
          "coloursPrinciple": {
            "default": 0,
            "description": "0: Unknown, 1: No colours exist, 2: Wearing needles, 3: Not wearing colours, 4: Wearing is optional, 5: Wearing is mandatory",
            "maximum": 5,
            "minimum": 0,
            "title": "Colours principle",
            "type": "integer"
          },
          "eventIds": {
            "$ref": "#/$defs/mapDisplayable/eventIds"
          },
          "fencingPrinciple": {
            "description": "0: Unknown, 1: Not fencing, 2: Fencing is opt-in, 3: Training is mandatory, but mensur is optional, 4: Mensur is mandatory",
            "maximum": 4,
            "minimum": 0,
            "title": "Fencing principle",
            "type": "integer"
          },
          "foundationDate": {
            "description": "The date (yyyy-MM-dd) or year at which the corporation was founded",
            "examples": [
              "1910",
              "1910-01-01"
            ],
            "pattern": "^$|^\\d{4}(-\\d{2}-\\d{2})?$",
            "title": "Foundation date",
            "type": "string"
          },
          "hidden": {
            "$ref": "#/$defs/baseModel/hidden"
          },
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "corporation_de_aachen_kdstv_marchia"
            ]
          },
          "indicatorColourId": {
            "$ref": "#/$defs/mapDisplayable/indicatorColourId",
            "description": "The ID of the colour used to indicate a member of this organisation on the map",
            "examples": [
              "ind_green"
            ]
          },
          "jourFixe": {
            "description": "Free-text comment on the best day/time to visit",
            "examples": [
              "Donnerstag"
            ],
            "title": "Jour Fixe",
            "type": "string"
          },
          "longName": {
            "$ref": "#/$defs/mapDisplayable/longName"
          },
          "mail": {
            "$ref": "#/$defs/mapDisplayable/mail"
          },
          "motto": {
            "description": "The corporation's motto",
            "examples": [
              "Mens agitat molem!"
            ],
            "title": "Motto",
            "type": "string"
          },
          "organisationIds": {
            "$ref": "#/$defs/ids/organisations",
            "description": "The IDs of organisations of which this corporation is a member"
          },
          "phone": {
            "$ref": "#/$defs/mapDisplayable/phone"
          },
          "remark": {
            "$ref": "#/$defs/mapDisplayable/remark"
          },
          "shortName": {
            "$ref": "#/$defs/mapDisplayable/shortName"
          },
          "website": {
            "$ref": "#/$defs/mapDisplayable/website"
          }
        },
        "required": [
          "addressId",
          "coloursPrinciple",
          "fencingPrinciple",
          "id",
          "longName",
          "shortName"
        ],
        "title": "Corporation",
        "type": "object"
      },
      "country": {
        "properties": {
          "cityIds": {
            "$ref": "#/$defs/ids/cities",
            "description": "The IDs of cities in this country"
          },
          "hidden": {
            "$ref": "#/$defs/baseModel/hidden"
          },
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "country_de"
            ]
          },
          "isoCode": {
            "description": "The ISO3166 code (2 or 3 letters, any case) of the country",
            "examples": [
              "de"
            ],
            "pattern": "[a-zA-z]{2,3}",
            "title": "Country code",
            "type": "string"
          }
        },
        "required": [
          "id",
          "isoCode"
        ],
        "type": "object"
      },
      "event": {
        "examples": [
          {
            "begin": "2022-12-24T18:00:00+01:00",
            "description": "Christmas events:\n- Christmas Eve\n- Christmas Day\n- Boxing Day",
            "end": "2022-12-26T22:00:00+01:00",
            "id": "event_christmas_0",
            "mapDisplayableIds": [
              "corporation_0",
              "corporation_1",
              "corporation_2"
            ],
            "name": "Christmas"
          }
        ],
        "properties": {
          "begin": {
            "$ref": "#/$defs/iso8601datetime",
            "description": "ISO8601 date string for the start of the event"
          },
          "description": {
            "description": "More details on the event",
            "title": "Description",
            "type": "string"
          },
          "end": {
            "$ref": "#/$defs/iso8601datetime",
            "description": "ISO8601 date string for the end of the event"
          },
          "hidden": {
            "$ref": "#/$defs/baseModel/hidden"
          },
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "event_christmas"
            ]
          },
          "mapDisplayableIds": {
            "description": "The IDs of corporations or points of interest where this event is happening",
            "items": {
              "title": "The ID of a corporation or a point of interest",
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "The name of the event",
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "begin",
          "id",
          "mapDisplayableIds",
          "name"
        ],
        "title": "An event associated to a corporation, organisation, and/or point of interest",
        "type": "object"
      },
      "ids": {
        "address": {
          "description": "The ID of an address",
          "title": "Address ID",
          "type": [
            "string",
            "null"
          ]
        },
        "addresses": {
          "items": {
            "$ref": "#/$defs/ids/address"
          },
          "title": "Address IDs",
          "type": "array"
        },
        "cities": {
          "items": {
            "$ref": "#/$defs/ids/city"
          },
          "title": "City IDs",
          "type": "array"
        },
        "city": {
          "description": "The ID of a city",
          "examples": [
            "city_de_aachen"
          ],
          "title": "City ID",
          "type": [
            "string",
            "null"
          ]
        },
        "colour": {
          "description": "The ID of a colour",
          "title": "Colour ID",
          "type": [
            "string",
            "null"
          ]
        },
        "colourFamilies": {
          "items": {
            "$ref": "#/$defs/ids/colourFamily"
          },
          "title": "Colour family IDs",
          "type": "array"
        },
        "colourFamily": {
          "description": "The ID of a colour family",
          "title": "Colour family ID",
          "type": [
            "string",
            "null"
          ]
        },
        "corporation": {
          "examples": [
            "corporation_de_aachen_kdstv_marchia"
          ],
          "title": "The ID of a corporation",
          "type": [
            "string",
            "null"
          ]
        },
        "corporations": {
          "items": {
            "$ref": "#/$defs/ids/corporation"
          },
          "title": "Corporation IDs",
          "type": "array"
        },
        "country": {
          "description": "The ID of a country",
          "examples": [
            "country_de"
          ],
          "type": "string"
        },
        "organisation": {
          "description": "The ID of an organisation",
          "examples": [
            "organisation_cv"
          ],
          "title": "Organisation ID",
          "type": [
            "string",
            "null"
          ]
        },
        "organisations": {
          "description": "The IDs of organisations of which this object is a member",
          "examples": [
            [
              "organisation_cv"
            ]
          ],
          "items": {
            "$ref": "#/$defs/ids/organisation"
          },
          "title": "Organisation IDs",
          "type": "array"
        },
        "pointOfInterest": {
          "examples": [
            "poi_de_aachen_townhall"
          ],
          "title": "The ID of a point of interest",
          "type": [
            "string",
            "null"
          ]
        },
        "pointsOfInterest": {
          "items": {
            "$ref": "#/$defs/ids/pointOfInterest"
          },
          "title": "Point of Interests",
          "type": "array"
        }
      },
      "iso8601datetime": {
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(.\\d{3})?[+-]\\d{2}:\\d{2}$",
        "type": "string"
      },
      "mapDisplayable": {
        "addressId": {
          "title": "The ID of the address at which this object is situated",
          "type": "string"
        },
        "eventIds": {
          "items": {
            "title": "An ID of an event",
            "type": "string"
          },
          "title": "The IDs of events taking place at this location",
          "type": [
            "array",
            "null"
          ]
        },
        "indicatorColourId": {
          "description": "The ID of the colour used to indicate the object on the map",
          "title": "Indicator colour ID",
          "type": "string"
        },
        "longName": {
          "description": "The full name of the corporation",
          "examples": [
            "KDStV Marchia (Breslau) zu Aachen im CV"
          ],
          "title": "Long name",
          "type": "string"
        },
        "mail": {
          "description": "A contact email address",
          "examples": [
            "chargen@marchia.de"
          ],
          "title": "E-Mail",
          "type": [
            "string",
            "null"
          ]
        },
        "phone": {
          "default": "",
          "examples": [
            "+49 241 18984012"
          ],
          "title": "The phone Schema",
          "type": [
            "string",
            "null"
          ]
        },
        "remark": {
          "default": "",
          "examples": [
            ""
          ],
          "title": "The remark Schema",
          "type": [
            "string",
            "null"
          ]
        },
        "shortName": {
          "default": "",
          "examples": [
            "KDStV Marchia"
          ],
          "title": "The shortName Schema",
          "type": [
            "string",
            "null"
          ]
        },
        "website": {
          "default": "",
          "examples": [
            "www.marchia.de"
          ],
          "title": "The website Schema",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "organisation": {
        "description": "An organisation in which corporations are members",
        "examples": [
          {
            "abbreviation": "CV",
            "id": "organisation_cv",
            "indicatorColour": "ind_green",
            "mapDisplayableIds": [
              "corporation_d_aachen_kdstv_baltia",
              "corporation_d_aachen_kdstv_bergland",
              "corporation_d_aachen_kdstv_franconia",
              "corporation_d_aachen_kdstv_kaiserpfalz",
              "corporation_d_aachen_kdstv_makaria",
              "corporation_d_aachen_kdstv_marchia",
              "corporation_d_aachen_kdstv_ripuaria"
            ],
            "name": "Cartellverband der Katholischen Deutschen Studentenverbindungen"
          }
        ],
        "properties": {
          "abbreviation": {
            "description": "The abbreviation of the organisation",
            "title": "Abbreviation",
            "type": "string"
          },
          "hidden": {
            "$ref": "#/$defs/baseModel/hidden"
          },
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "organisation_cv"
            ]
          },
          "indicatorColourId": {
            "$ref": "#/$defs/mapDisplayable/indicatorColourId",
            "description": "The ID of the colour used to indicate a member of this organisation on the map"
          },
          "mapDisplayableIds": {
            "description": "The IDs of corporations or points of interest that are associated with this organisation",
            "items": {
              "title": "An ID of a corporation or a points of interest",
              "type": "string"
            },
            "title": "Member IDs",
            "type": "array"
          },
          "name": {
            "description": "The name of the organisation",
            "examples": [
              "Cartellverband der Katholischen Deutschen Studentenverbindungen"
            ],
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "abbreviation",
          "id",
          "name"
        ],
        "title": "Organisation",
        "type": "object"
      },
      "pointOfInterest": {
        "description": "A location on the map which isn't home to a corporation",
        "properties": {
          "addressId": {
            "$ref": "#/$defs/mapDisplayable/addressId",
            "description": "The ID of the address at which this corporation is situated"
          },
          "associatedCorporationId": {
            "$ref": "#/$defs/ids/corporation",
            "description": "The ID of a corporation with which this POI is associated"
          },
          "eventIds": {
            "$ref": "#/$defs/mapDisplayable/eventIds"
          },
          "hidden": {
            "$ref": "#/$defs/baseModel/hidden"
          },
          "iconName": {
            "description": "The name of the icon to use for the marker",
            "title": "Icon name",
            "type": "string"
          },
          "id": {
            "$ref": "#/$defs/baseModel/id",
            "examples": [
              "corporation_de_aachen_kdstv_marchia"
            ]
          },
          "indicatorColourId": {
            "$ref": "#/$defs/mapDisplayable/indicatorColourId",
            "description": "The ID of the colour used to indicate a member of this organisation on the map",
            "examples": [
              "ind_green"
            ]
          },
          "longName": {
            "$ref": "#/$defs/mapDisplayable/longName"
          },
          "mail": {
            "$ref": "#/$defs/mapDisplayable/mail"
          },
          "phone": {
            "$ref": "#/$defs/mapDisplayable/phone"
          },
          "remark": {
            "$ref": "#/$defs/mapDisplayable/remark"
          },
          "shortName": {
            "$ref": "#/$defs/mapDisplayable/shortName"
          },
          "website": {
            "$ref": "#/$defs/mapDisplayable/website"
          }
        },
        "required": [
          "addressId",
          "id",
          "longName",
          "shortName"
        ],
        "title": "Point of Interest",
        "type": "object"
      },
      "translationKey": {
        "description": "A key that is used to look up the name in various languages",
        "pattern": "^[a-zA-Z0-9\u00c0-\u017e][a-zA-Z0-9\u00c0-\u017e_]*$",
        "title": "Translation key",
        "type": "string"
      }
    },
    "$id": "https://couleurbummel.app/v1/model.schema.json",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "description": "The database model for the app Couleurbummel\n\nThe objects on the top level are all mappings from IDs uniquely identifying objects to the respective objects.",
    "properties": {
      "addresses": {
        "additionalProperties": {
          "$ref": "#/$defs/address"
        },
        "description": "A mapping of address ID to an address object",
        "type": "object"
      },
      "cities": {
        "additionalProperties": {
          "$ref": "#/$defs/city"
        },
        "description": "A mapping of city ID to a city object",
        "type": "object"
      },
      "colourFamilies": {
        "additionalProperties": {
          "$ref": "#/$defs/colourFamily"
        },
        "description": "A mapping of colour family ID to a colour family object",
        "type": "object"
      },
      "colours": {
        "additionalProperties": {
          "$ref": "#/$defs/colour"
        },
        "description": "A mapping of colour ID to a colour object",
        "type": "object"
      },
      "corporations": {
        "additionalProperties": {
          "$ref": "#/$defs/corporation"
        },
        "description": "A mapping of corporation ID to a corporation object",
        "type": "object"
      },
      "countries": {
        "additionalProperties": {
          "$ref": "#/$defs/country"
        },
        "description": "A mapping of country ID to a country object",
        "type": "object"
      },
      "events": {
        "additionalProperties": {
          "$ref": "#/$defs/event"
        },
        "description": "A mapping of event ID to an event object",
        "type": "object"
      },
      "organisations": {
        "additionalProperties": {
          "$ref": "#/$defs/organisation"
        },
        "description": "A mapping of organisation ID to an organisation object",
        "type": "object"
      },
      "pointsOfInterest": {
        "additionalProperties": {
          "$ref": "#/$defs/pointOfInterest"
        },
        "description": "A mapping of point of interest ID to a point of interest object",
        "type": "object"
      }
    },
    "title": "CouleurbummelModel",
    "type": "object"
  }