{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/immowelt/json-schema/immowelt-project-response-schema.json",
  "title": "projectResponse",
  "description": "Response wrapper for Data",
  "x-generated": "2026-10-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/immowelt-import-listings-openapi.yml#/components/schemas/projectResponse",
  "type": "object",
  "required": [
    "data"
  ],
  "additionalProperties": false,
  "properties": {
    "data": {
      "$ref": "#/$defs/projectData"
    },
    "metadata": {
      "$ref": "#/$defs/projectMetadata"
    },
    "contact": {
      "$ref": "#/$defs/contact"
    },
    "media": {
      "$ref": "#/$defs/mediaResponse"
    },
    "assignedListings": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "externalListingId": {
            "type": "string",
            "description": "Unique identifier of the unit listing within the project."
          }
        }
      }
    }
  },
  "$defs": {
    "contact": {
      "type": "object",
      "nullable": false,
      "additionalProperties": false,
      "properties": {
        "salutation": {
          "type": "string",
          "maxLength": 10,
          "description": "Listing contact salutation.",
          "enum": [
            "Mr",
            "Mrs",
            "Miss",
            "Ms",
            "Mx",
            "Sir",
            "Dame",
            "Dr",
            "Cllr",
            "Lady",
            "Lord"
          ]
        },
        "firstName": {
          "type": "string",
          "maxLength": 255,
          "description": "Listing contact firstName."
        },
        "lastName": {
          "type": "string",
          "maxLength": 255,
          "description": "Listing contact lastName."
        },
        "name": {
          "type": "string",
          "maxLength": 255,
          "description": "Listing contact name or customer's default name."
        },
        "emailAddress": {
          "type": "string",
          "maxLength": 320,
          "description": "Listing contact email address or customer's default email address."
        },
        "phoneNumber": {
          "type": "string",
          "maxLength": 36,
          "description": "Listing contact phone number or customer's default phone number."
        },
        "mobilePhoneNumber": {
          "type": "string",
          "maxLength": 36,
          "description": "Listing contact mobile phone number or customer's default mobile phone number."
        },
        "imageURL": {
          "type": "string",
          "maxLength": 2048,
          "description": "This imageURL field defined for imageURLofcontact. phone number."
        },
        "userHomepage": {
          "type": "string",
          "maxLength": 2048,
          "description": "URL of the user's homepage or website"
        },
        "postalCode": {
          "type": "string",
          "minLength": 3,
          "maxLength": 12,
          "pattern": "^[a-zA-Z0-9\\s-]{3,12}$",
          "description": "Postal code of the contact person"
        },
        "city": {
          "type": "string",
          "maxLength": 128,
          "description": "City of the contact person"
        },
        "street": {
          "type": "string",
          "maxLength": 512,
          "description": "Street of the contact person"
        },
        "houseNumber": {
          "type": "string",
          "maxLength": 64,
          "description": "House number of the contact person"
        },
        "country": {
          "type": "string",
          "maxLength": 64,
          "description": "Country of the contact person"
        },
        "preferredContactType": {
          "type": "string",
          "enum": [
            "ANONYMOUS",
            "BY_PHONE",
            "BY_EMAIL",
            "OWN_WEBSITE"
          ],
          "description": "Preferred method of contact"
        },
        "contactNote": {
          "description": "Contact note in multiple languages",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "displayedInformation": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "mainContactPerson": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "boolean",
                  "description": "Display name of main contact person"
                },
                "phone": {
                  "type": "boolean",
                  "description": "Display phone of main contact person"
                },
                "mobilePhone": {
                  "type": "boolean",
                  "description": "Display mobile phone of main contact person"
                },
                "email": {
                  "type": "boolean",
                  "description": "Display email of main contact person"
                },
                "address": {
                  "type": "boolean",
                  "description": "Display address of main contact person"
                },
                "companyName": {
                  "type": "boolean",
                  "description": "Display company name of main contact person"
                },
                "fax": {
                  "type": "boolean",
                  "description": "Display fax of main contact person"
                }
              }
            },
            "additionalContactPerson": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "boolean",
                  "description": "Display name of additional contact person"
                },
                "phone": {
                  "type": "boolean",
                  "description": "Display phone of additional contact person"
                },
                "mobilePhone": {
                  "type": "boolean",
                  "description": "Display mobile phone of additional contact person"
                },
                "email": {
                  "type": "boolean",
                  "description": "Display email of additional contact person"
                },
                "address": {
                  "type": "boolean",
                  "description": "Display address of additional contact person"
                },
                "companyName": {
                  "type": "boolean",
                  "description": "Display company name of additional contact person"
                },
                "fax": {
                  "type": "boolean",
                  "description": "Display fax of additional contact person"
                }
              }
            }
          }
        }
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "externalLinks": {
          "description": "links to external resources which are not meant to be downloaded and processed by the portal",
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "url"
            ],
            "additionalProperties": false,
            "properties": {
              "url": {
                "type": "string",
                "format": "url",
                "description": "the link to the external resource"
              },
              "urlType": {
                "description": "Type of the link\n- MAP: external map resource (like google maps)\n- MOVIE: external movie resource (like youtube)\n- PANORAMA: wide picture or 360 degree view resource\n- REVOCATION_INSTRUCTION: legal instruction about the broker contract\n- OFFERER_DETAIL_PAGE: detail page of this classified on the offerer website",
                "type": "string",
                "enum": [
                  "MAP",
                  "MOVIE",
                  "PANORAMA",
                  "REVOCATION_INSTRUCTION",
                  "OFFERER_DETAIL_PAGE"
                ]
              },
              "title": {
                "type": "string",
                "description": "description of the link"
              }
            }
          }
        },
        "virtualTours": {
          "description": "Agencies or other intermediaries can provide virtual tour links to external players with external privacy agreements",
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "url"
            ],
            "additionalProperties": false,
            "properties": {
              "url": {
                "type": "string",
                "format": "url",
                "description": "the link to the external virtual tour resource"
              },
              "provider": {
                "type": "string",
                "description": "provider name of the virtual tour. Used to select the right display method."
              },
              "title": {
                "type": "string",
                "description": "description of the link"
              }
            }
          }
        }
      }
    },
    "location": {
      "type": "object",
      "nullable": false,
      "additionalProperties": false,
      "required": [
        "postalcode",
        "city",
        "street",
        "houseNumber",
        "country",
        "geometry"
      ],
      "description": "geographical information of the real estate property",
      "properties": {
        "postalcode": {
          "type": "string",
          "nullable": false,
          "minLength": 3,
          "maxLength": 12,
          "description": "postalcode or zip of the property location.",
          "pattern": "^[a-zA-Z0-9\\s-]{3,12}$"
        },
        "city": {
          "type": "string",
          "nullable": false,
          "minLength": 1,
          "maxLength": 128,
          "description": "city where the property is located."
        },
        "street": {
          "type": "string",
          "nullable": false,
          "minLength": 1,
          "maxLength": 512,
          "description": "street where the property is located. It can also be a place name or any required neighbourhood information."
        },
        "houseNumber": {
          "type": "string",
          "nullable": false,
          "minLength": 1,
          "maxLength": 64,
          "description": "house number where the property is located."
        },
        "unit": {
          "type": "string",
          "nullable": false,
          "minLength": 1,
          "maxLength": 64,
          "description": "An apartment, unit, office, lot, or other secondary unit designator"
        },
        "staircase": {
          "type": "string",
          "nullable": false,
          "minLength": 1,
          "maxLength": 64,
          "description": "numbered/lettered staircase"
        },
        "floorNumber": {
          "type": "integer",
          "nullable": false,
          "minimum": -5,
          "maximum": 999,
          "description": "number of the floor in the building; 0 means ground floor, NOT first floor; 1 means first upper floor; -1 means first basement floor"
        },
        "entrance": {
          "type": "string",
          "nullable": false,
          "minLength": 1,
          "maxLength": 32,
          "description": "numbered/lettered entrance"
        },
        "state": {
          "type": "string",
          "nullable": false,
          "minLength": 1,
          "maxLength": 128,
          "description": "state within the country where the property is located"
        },
        "country": {
          "type": "string",
          "nullable": false,
          "minLength": 3,
          "maxLength": 3,
          "description": "country where the property is located, using the ISO 3166-1 alpha-3 country code standard.",
          "enum": [
            "ABW",
            "AFG",
            "AGO",
            "AIA",
            "ALA",
            "ALB",
            "AND",
            "ARE",
            "ARG",
            "ARM",
            "ASM",
            "ATA",
            "ATF",
            "ATG",
            "AUS",
            "AUT",
            "AZE",
            "BDI",
            "BEL",
            "BEN",
            "BES",
            "BFA",
            "BGD",
            "BGR",
            "BHR",
            "BHS",
            "BIH",
            "BLM",
            "BLR",
            "BLZ",
            "BMU",
            "BOL",
            "BRA",
            "BRB",
            "BRN",
            "BTN",
            "BVT",
            "BWA",
            "CAF",
            "CAN",
            "CCK",
            "CHE",
            "CHL",
            "CHN",
            "CIV",
            "CMR",
            "COD",
            "COG",
            "COK",
            "COL",
            "COM",
            "CPV",
            "CRI",
            "CUB",
            "CUW",
            "CXR",
            "CYM",
            "CYP",
            "CZE",
            "DEU",
            "DJI",
            "DMA",
            "DNK",
            "DOM",
            "DZA",
            "ECU",
            "EGY",
            "ERI",
            "ESH",
            "ESP",
            "EST",
            "ETH",
            "FIN",
            "FJI",
            "FLK",
            "FRA",
            "FRO",
            "FSM",
            "GAB",
            "GBR",
            "GEO",
            "GGY",
            "GHA",
            "GIB",
            "GIN",
            "GLP",
            "GMB",
            "GNB",
            "GNQ",
            "GRC",
            "GRD",
            "GRL",
            "GTM",
            "GUF",
            "GUM",
            "GUY",
            "HKG",
            "HMD",
            "HND",
            "HRV",
            "HTI",
            "HUN",
            "IDN",
            "IMN",
            "IND",
            "IOT",
            "IRL",
            "IRN",
            "IRQ",
            "ISL",
            "ISR",
            "ITA",
            "JAM",
            "JEY",
            "JOR",
            "JPN",
            "KAZ",
            "KEN",
            "KGZ",
            "KHM",
            "KIR",
            "KNA",
            "KOR",
            "KWT",
            "LAO",
            "LBN",
            "LBR",
            "LBY",
            "LCA",
            "LIE",
            "LKA",
            "LSO",
            "LTU",
            "LUX",
            "LVA",
            "MAC",
            "MAF",
            "MAR",
            "MCO",
            "MDA",
            "MDG",
            "MDV",
            "MEX",
            "MHL",
            "MKD",
            "MLI",
            "MLT",
            "MMR",
            "MNE",
            "MNG",
            "MNP",
            "MOZ",
            "MRT",
            "MSR",
            "MTQ",
            "MUS",
            "MWI",
            "MYS",
            "MYT",
            "NAM",
            "NCL",
            "NER",
            "NFK",
            "NGA",
            "NIC",
            "NIU",
            "NLD",
            "NOR",
            "NPL",
            "NRU",
            "NZL",
            "OMN",
            "PAK",
            "PAN",
            "PCN",
            "PER",
            "PHL",
            "PLW",
            "PNG",
            "POL",
            "PRI",
            "PRK",
            "PRT",
            "PRY",
            "PSE",
            "PYF",
            "QAT",
            "REU",
            "ROU",
            "RUS",
            "RWA",
            "SAU",
            "SDN",
            "SEN",
            "SGP",
            "SGS",
            "SHN",
            "SJM",
            "SLB",
            "SLE",
            "SLV",
            "SMR",
            "SOM",
            "SPM",
            "SRB",
            "SSD",
            "STP",
            "SUR",
            "SVK",
            "SVN",
            "SWE",
            "SWZ",
            "SXM",
            "SYC",
            "SYR",
            "TCA",
            "TCD",
            "TGO",
            "THA",
            "TJK",
            "TKL",
            "TKM",
            "TLS",
            "TON",
            "TTO",
            "TUN",
            "TUR",
            "TUV",
            "TWN",
            "TZA",
            "UGA",
            "UKR",
            "UMI",
            "URY",
            "USA",
            "UZB",
            "VAT",
            "VCT",
            "VEN",
            "VGB",
            "VIR",
            "VNM",
            "VUT",
            "WLF",
            "WSM",
            "YEM",
            "ZAF",
            "ZMB",
            "ZWE"
          ]
        },
        "geometry": {
          "type": "object",
          "nullable": false,
          "additionalProperties": false,
          "description": "Coordinates of the property using GeoJSON Point format. WGS84 (GPS) System expected. The coordinates array must contain [longitude, latitude] in that order.",
          "required": [
            "type",
            "coordinates"
          ],
          "properties": {
            "type": {
              "type": "string",
              "nullable": false,
              "minLength": 1,
              "enum": [
                "Point"
              ],
              "description": "the geometry type (must be 'Point')"
            },
            "coordinates": {
              "type": "array",
              "nullable": false,
              "description": "Point coordinates as [longitude, latitude]. Longitude range: -180 to 180. Latitude range: -90 to 90.",
              "minItems": 2,
              "maxItems": 2,
              "items": {
                "type": "number",
                "format": "float",
                "nullable": false
              }
            }
          }
        },
        "showAddress": {
          "type": "boolean",
          "nullable": false,
          "default": true,
          "description": "may the complete address be visible to everyone who sees the property online? if false, street and houseNumber may not be displayed in any case!"
        },
        "locationNote": {
          "nullable": false,
          "additionalProperties": false,
          "description": "additional information about the area where the property is located",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        }
      }
    },
    "mediaResponse": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "externalMediaId"
        ],
        "properties": {
          "externalMediaId": {
            "type": "string",
            "description": "The External media ID"
          },
          "title": {
            "type": "string",
            "description": "A descriptive title for the media item"
          }
        },
        "description": "Array of media items attached to the listing."
      }
    },
    "multiLingualText": {
      "title": "Multi-lingual Textual Component based on ISO 639-1:2002 (Alpha-2 code)",
      "type": "object",
      "nullable": false,
      "additionalProperties": false,
      "description": "This part of ISO 639 provides a code consisting of language code elements  comprising two-letter language identifiers for the representation of names  of languages. The language identifiers according to this part of ISO 639  were devised originally for use in terminology, lexicography and linguistics,  but may be adopted for any application requiring the expression of language in two-letter coded form, especially in computerized systems.",
      "properties": {
        "aa": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Afar Afaraf  aar  aar  aar"
        },
        "ab": {
          "type": "string",
          "maxLength": 3999,
          "description": "Northwest Caucasian Abkhazian аҧсуа бызшәа,\nаҧсшәа  abk  abk  abk  also known as Abkhaz"
        },
        "ae": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Avestan avesta  ave  ave  ave  ancient"
        },
        "af": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Afrikaans Afrikaans  afr  afr  afr"
        },
        "ak": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Akan Akan  aka  aka  aka + 2  macrolanguage, Twi is\n[tw/twi], Fanti is [fat]"
        },
        "am": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Amharic አማርኛ  amh  amh  amh"
        },
        "an": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Aragonese aragonés  arg  arg  arg"
        },
        "ar": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Arabic العربية  ara  ara  ara\n+ 29  macrolanguage, Standard Arabic is [arb]"
        },
        "as": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Assamese অসমীয়া  asm  asm  asm"
        },
        "av": {
          "type": "string",
          "maxLength": 3999,
          "description": "Northeast Caucasian Avaric авар мацӀ, магӀарул\nмацӀ  ava  ava  ava  also known as Avar"
        },
        "ay": {
          "type": "string",
          "maxLength": 3999,
          "description": "Aymaran Aymara aymar aru  aym  aym  aym + 2  macrolanguage"
        },
        "az": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Azerbaijani azərbaycan dili  aze  aze  aze + 2  macrolanguage"
        },
        "ba": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Bashkir башҡорт теле  bak  bak  bak"
        },
        "be": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Belarusian беларуская мова  bel  bel  bel"
        },
        "bg": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Bulgarian български език  bul  bul  bul"
        },
        "bh": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Bihari languages भोजपुरी  bih  bih    collective\nlanguage code for Bhojpuri, Magahi, and Maithili"
        },
        "bi": {
          "type": "string",
          "maxLength": 3999,
          "description": "Creole Bislama Bislama  bis  bis  bis  Language formed from English\nand Ni-Vanuatu, with some French influence."
        },
        "bm": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Bambara bamanankan  bam  bam  bam"
        },
        "bn": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Bengali বাংলা  ben  ben  ben  also known as Bangla"
        },
        "bo": {
          "type": "string",
          "maxLength": 3999,
          "description": "Sino-Tibetan Tibetan བོད་ཡིག  bod  tib  bod  also known as Standard Tibetan"
        },
        "br": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Breton brezhoneg  bre  bre  bre"
        },
        "bs": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Bosnian bosanski jezik  bos  bos  bos"
        },
        "ca": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Catalan, Valencian català, valencià  cat  cat  cat"
        },
        "ce": {
          "type": "string",
          "maxLength": 3999,
          "description": "Northeast Caucasian Chechen нохчийн мотт  che  che  che"
        },
        "ch": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Chamorro Chamoru  cha  cha  cha"
        },
        "co": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Corsican corsu, lingua corsa  cos  cos  cos"
        },
        "cr": {
          "type": "string",
          "maxLength": 3999,
          "description": "Algonquian Cree ᓀᐦᐃᔭᐍᐏᐣ  cre  cre  cre + 6  macrolanguage"
        },
        "cs": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Czech čeština, český jazyk  ces  cze  ces"
        },
        "cu": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Church Slavic, Old Slavonic, Church Slavonic, Old\nBulgarian, Old Church Slavonic ѩзыкъ\nсловѣньскъ  chu  chu  chu  ancient, in use by Orthodox Church"
        },
        "cv": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Chuvash чӑваш чӗлхи  chv  chv  chv"
        },
        "cy": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Welsh Cymraeg  cym  wel  cym"
        },
        "da": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Danish dansk  dan  dan  dan"
        },
        "de": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European German Deutsch  deu  ger  deu"
        },
        "dv": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Divehi, Dhivehi, Maldivian ދިވެހި  div  div  div"
        },
        "dz": {
          "type": "string",
          "maxLength": 3999,
          "description": "Sino-Tibetan Dzongkha རྫོང་ཁ  dzo  dzo  dzo"
        },
        "ee": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Ewe Eʋegbe  ewe  ewe  ewe"
        },
        "el": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Greek, Modern (1453–) ελληνικά  ell  gre  ell"
        },
        "en": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European English English  eng  eng  eng"
        },
        "eo": {
          "type": "string",
          "maxLength": 3999,
          "description": "Constructed Esperanto Esperanto  epo  epo  epo  constructed,\ninitiated from L.L. Zamenhof, 1887"
        },
        "es": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Spanish, Castilian Español  spa  spa  spa"
        },
        "et": {
          "type": "string",
          "maxLength": 3999,
          "description": "Uralic Estonian eesti, eesti keel  est  est  est + 2  macrolanguage"
        },
        "eu": {
          "type": "string",
          "maxLength": 3999,
          "description": "Language isolate Basque euskara, euskera  eus  baq  eus"
        },
        "fa": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Persian فارسی  fas  per  fas + 2  macrolanguage, also known as Farsi"
        },
        "ff": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Fulah Fulfulde, Pulaar, Pular  ful  ful  ful\n+ 9  macrolanguage, also known as Fula"
        },
        "fi": {
          "type": "string",
          "maxLength": 3999,
          "description": "Uralic Finnish suomi, suomen kieli  fin  fin  fin"
        },
        "fj": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Fijian vosa Vakaviti  fij  fij  fij"
        },
        "fo": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Faroese føroyskt  fao  fao  fao"
        },
        "fr": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European French français, langue française  fra  fre  fra"
        },
        "fy": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Western Frisian Frysk  fry  fry  fry  also known as Frisian"
        },
        "ga": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Irish Gaeilge  gle  gle  gle"
        },
        "gd": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Gaelic, Scottish Gaelic Gàidhlig  gla  gla  gla"
        },
        "gl": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Galician Galego  glg  glg  glg"
        },
        "gn": {
          "type": "string",
          "maxLength": 3999,
          "description": "Tupian Guarani Avañe'ẽ  grn  grn  grn + 5  macrolanguage"
        },
        "gu": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Gujarati ગુજરાતી  guj  guj  guj"
        },
        "gv": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Manx Gaelg, Gailck  glv  glv  glv"
        },
        "ha": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Hausa (Hausa) هَوُسَ  hau  hau  hau"
        },
        "he": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Hebrew עברית  heb  heb  heb  Modern Hebrew. Code\nchanged in 1989 from original ISO 639:1988, iw.[1]"
        },
        "hi": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Hindi हिन्दी, हिंदी  hin  hin  hin"
        },
        "ho": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Hiri Motu Hiri Motu  hmo  hmo  hmo"
        },
        "hr": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Croatian hrvatski jezik  hrv  hrv  hrv"
        },
        "ht": {
          "type": "string",
          "maxLength": 3999,
          "description": "Creole Haitian, Haitian Creole Kreyòl ayisyen  hat  hat  hat"
        },
        "hu": {
          "type": "string",
          "maxLength": 3999,
          "description": "Uralic Hungarian magyar  hun  hun  hun"
        },
        "hy": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Armenian Հայերեն  hye  arm  hye  also known as\nՀայերէն; ISO 639-3 code \"hye\" is for Eastern Armenian, \"hyw\" is for\nWestern Armenian, and \"xcl\" is for Classical Armenian"
        },
        "hz": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Herero Otjiherero  her  her  her"
        },
        "ia": {
          "type": "string",
          "maxLength": 3999,
          "description": "Constructed Interlingua (International Auxiliary Language Association) Interlingua  ina  ina  ina  constructed\nby International Auxiliary Language Association"
        },
        "id": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Indonesian Bahasa Indonesia  ind  ind  ind  Covered by\nmacrolanguage [ms/msa]. Changed in 1989 from original ISO 639:1988,\nin[1]."
        },
        "ie": {
          "type": "string",
          "maxLength": 3999,
          "description": "Constructed Interlingue, Occidental (originally:) Occidental,\n(after WWII:) Interlingue  ile  ile  ile  constructed by Edgar de\nWahl, first published in 1922"
        },
        "ig": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Igbo Asụsụ Igbo  ibo  ibo  ibo"
        },
        "ii": {
          "type": "string",
          "maxLength": 3999,
          "description": "Sino-Tibetan Sichuan Yi, Nuosu ꆈꌠ꒿\nNuosuhxop  iii  iii  iii  Standard form of Yi languages"
        },
        "ik": {
          "type": "string",
          "maxLength": 3999,
          "description": "Eskimo–Aleut Inupiaq Iñupiaq, Iñupiatun  ipk  ipk  ipk\n+ 2  macrolanguage"
        },
        "io": {
          "type": "string",
          "maxLength": 3999,
          "description": "Constructed Ido Ido  ido  ido  ido  constructed by De Beaufront,\n1907, as variation of Esperanto"
        },
        "is": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Icelandic Íslenska  isl  ice  isl"
        },
        "it": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Italian Italiano  ita  ita  ita"
        },
        "iu": {
          "type": "string",
          "maxLength": 3999,
          "description": "Eskimo–Aleut Inuktitut ᐃᓄᒃᑎᑐᑦ  iku  iku  iku + 2  macrolanguage"
        },
        "ja": {
          "type": "string",
          "maxLength": 3999,
          "description": "Japonic Japanese 日本語 (にほんご)  jpn  jpn  jpn"
        },
        "jv": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Javanese ꦧꦱꦗꦮ, Basa Jawa  jav  jav  jav"
        },
        "ka": {
          "type": "string",
          "maxLength": 3999,
          "description": "Kartvelian Georgian ქართული  kat  geo  kat"
        },
        "kg": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Kongo Kikongo  kon  kon  kon + 3  macrolanguage"
        },
        "ki": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Kikuyu, Gikuyu Gĩkũyũ  kik  kik  kik"
        },
        "kj": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Kuanyama, Kwanyama Kuanyama  kua  kua  kua"
        },
        "kk": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Kazakh қазақ тілі  kaz  kaz  kaz"
        },
        "kl": {
          "type": "string",
          "maxLength": 3999,
          "description": "Eskimo–Aleut Kalaallisut, Greenlandic kalaallisut, kalaallit\noqaasii  kal  kal  kal"
        },
        "km": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austroasiatic Central Khmer ខ្មែរ, ខេមរភាសា,\nភាសាខ្មែរ  khm  khm  khm  also known as Khmer or Cambodian"
        },
        "kn": {
          "type": "string",
          "maxLength": 3999,
          "description": "Dravidian Kannada ಕನ್ನಡ  kan  kan  kan"
        },
        "ko": {
          "type": "string",
          "maxLength": 3999,
          "description": "Koreanic Korean 한국어  kor  kor  kor"
        },
        "kr": {
          "type": "string",
          "maxLength": 3999,
          "description": "Nilo-Saharan Kanuri Kanuri  kau  kau  kau + 3  macrolanguage"
        },
        "ks": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Kashmiri कश्मीरी, كشميري‎  kas  kas  kas"
        },
        "ku": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Kurdish Kurdî, کوردی‎  kur  kur  kur + 3 macrolanguage"
        },
        "kv": {
          "type": "string",
          "maxLength": 3999,
          "description": "Uralic Komi коми кыв  kom  kom  kom + 2  macrolanguage"
        },
        "kw": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Cornish Kernewek  cor  cor  cor"
        },
        "ky": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Kirghiz, Kyrgyz Кыргызча, Кыргыз тили  kir  kir  kir"
        },
        "la": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Latin latine, lingua latina  lat  lat  lat  ancient"
        },
        "lb": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Luxembourgish, Letzeburgesch\nLëtzebuergesch  ltz  ltz  ltz"
        },
        "lg": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Ganda Luganda  lug  lug  lug"
        },
        "li": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Limburgan, Limburger, Limburgish\nLimburgs  lim  lim  lim"
        },
        "ln": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Lingala Lingála  lin  lin  lin"
        },
        "lo": {
          "type": "string",
          "maxLength": 3999,
          "description": "Tai–Kadai Lao ພາສາລາວ  lao  lao  lao"
        },
        "lt": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Lithuanian lietuvių kalba  lit  lit  lit"
        },
        "lu": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Luba-Katanga Kiluba  lub  lub  lub  also known as\nLuba-Shaba"
        },
        "lv": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Latvian latviešu valoda  lav  lav  lav\n+ 2  macrolanguage"
        },
        "mg": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Malagasy fiteny malagasy  mlg  mlg  mlg\n+ 11  macrolanguage"
        },
        "mh": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Marshallese Kajin M̧ajeļ  mah  mah  mah"
        },
        "mi": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Maori te reo Māori  mri  mao  mri  also known as Māori"
        },
        "mk": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Macedonian македонски јазик  mkd  mac  mkd"
        },
        "ml": {
          "type": "string",
          "maxLength": 3999,
          "description": "Dravidian Malayalam മലയാളം  mal  mal  mal"
        },
        "mn": {
          "type": "string",
          "maxLength": 3999,
          "description": "Mongolic Mongolian Монгол хэл  mon  mon  mon + 2  macrolanguage"
        },
        "mr": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Marathi मराठी  mar  mar  mar  also known as Marāṭhī"
        },
        "ms": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Malay Bahasa Melayu, بهاس ملايو‎  msa  may  msa\n+ 36  macrolanguage, Standard Malay is [zsm], Indonesian is [id/ind]"
        },
        "mt": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Maltese Malti  mlt  mlt  mlt"
        },
        "my": {
          "type": "string",
          "maxLength": 3999,
          "description": "Sino-Tibetan Burmese ဗမာစာ  mya  bur  mya  also known as Myanmar"
        },
        "na": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Nauru Dorerin Naoero  nau  nau  nau  also known as Nauruan"
        },
        "nb": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Norwegian Bokmål Norsk Bokmål  nob  nob  nob  Covered\nby macrolanguage [no/nor]"
        },
        "nd": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo North Ndebele isiNdebele  nde  nde  nde  also known as\nNorthern Ndebele"
        },
        "ne": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Nepali नेपाली  nep  nep  nep + 2  macrolanguage"
        },
        "ng": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Ndonga Owambo  ndo  ndo  ndo"
        },
        "nl": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Dutch, Flemish Nederlands,\nVlaams  nld  dut  nld  Flemish is not to be confused with the\nclosely related West Flemish which is referred to as Vlaams (Dutch\nfor \"Flemish\")  in ISO 639-3 and has the ISO 639-3 code vls"
        },
        "nn": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Norwegian Nynorsk Norsk\nNynorsk  nno  nno  nno  Covered by macrolanguage [no/nor]"
        },
        "no": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Norwegian Norsk  nor  nor  nor\n+ 2  macrolanguage, Bokmål is [nb/nob], Nynorsk is [nn/nno]"
        },
        "nr": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo South Ndebele isiNdebele  nbl  nbl  nbl  also known as\nSouthern Ndebele"
        },
        "nv": {
          "type": "string",
          "maxLength": 3999,
          "description": "Dené–Yeniseian Navajo, Navaho Diné bizaad  nav  nav  nav"
        },
        "ny": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Chichewa, Chewa, Nyanja chiCheŵa,\nchinyanja  nya  nya  nya"
        },
        "oc": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Occitan occitan, lenga d'òc  oci  oci  oci"
        },
        "oj": {
          "type": "string",
          "maxLength": 3999,
          "description": "Algonquian Ojibwa ᐊᓂᔑᓈᐯᒧᐎᓐ  oji  oji  oji + 7  macrolanguage, also\nknown as Ojibwe"
        },
        "om": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Oromo Afaan Oromoo  orm  orm  orm + 4  macrolanguage"
        },
        "or": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Oriya ଓଡ଼ିଆ  ori  ori  ori + 2  macrolanguage, also\nknown as Odia"
        },
        "os": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Ossetian, Ossetic ирон æвзаг  oss  oss  oss"
        },
        "pa": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Punjabi, Panjabi ਪੰਜਾਬੀ, پنجابی‎  pan  pan  pan"
        },
        "pi": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Pali पालि, पाळि  pli  pli  pli  ancient, also known\nas Pāli"
        },
        "pl": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Polish język polski, polszczyzna  pol  pol  pol"
        },
        "ps": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Pashto, Pushto پښتو  pus  pus  pus + 3  macrolanguage"
        },
        "pt": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Portuguese Português  por  por  por"
        },
        "qu": {
          "type": "string",
          "maxLength": 3999,
          "description": "Quechuan Quechua Runa Simi, Kichwa  que  que  que + 43 macrolanguage"
        },
        "rm": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Romansh Rumantsch Grischun  roh  roh  roh"
        },
        "rn": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Rundi Ikirundi  run  run  run  also known as Kirundi"
        },
        "ro": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Romanian, Moldavian, Moldovan\nRomână  ron  rum  ron  The identifiers mo and mol are\ndeprecated,  leaving ro and ron (639-2/T) and rum (639-2/B) the\ncurrent language identifiers to be used for the variant of  the\nRomanian language also known as Moldavian and Moldovan in English\nand moldave in French. The identifiers mo and mol will not be\nassigned to different items, and recordings using these identifiers\nwill not be invalid."
        },
        "ru": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Russian русский  rus  rus  rus"
        },
        "rw": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Kinyarwanda Ikinyarwanda  kin  kin  kin"
        },
        "sa": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Sanskrit संस्कृतम्  san  san  san  ancient, still\nspoken, also known as Saṃskṛta"
        },
        "sc": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Sardinian sardu  srd  srd  srd + 4  macrolanguage"
        },
        "sd": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Sindhi सिन्धी, سنڌي، سندھی‎  snd  snd  snd"
        },
        "se": {
          "type": "string",
          "maxLength": 3999,
          "description": "Uralic Northern Sami Davvisámegiella  sme  sme  sme"
        },
        "sg": {
          "type": "string",
          "maxLength": 3999,
          "description": "Creole Sango yângâ tî sängö  sag  sag  sag"
        },
        "si": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Sinhala, Sinhalese සිංහල  sin  sin  sin"
        },
        "sk": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Slovak Slovenčina, Slovenský Jazyk  slk  slo  slk"
        },
        "sl": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Slovenian Slovenski Jezik,\nSlovenščina  slv  slv  slv  also known as Slovene"
        },
        "sm": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Samoan gagana fa'a Samoa  smo  smo  smo"
        },
        "sn": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Shona chiShona  sna  sna  sna"
        },
        "so": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Somali Soomaaliga, af Soomaali  som  som  som"
        },
        "sq": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Albanian Shqip  sqi  alb  sqi + 4  macrolanguage,\n\"Albanian Phylozone\" in 639-6"
        },
        "sr": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Serbian српски језик  srp  srp  srp  The ISO 639-2/T\ncode srp deprecated the ISO 639-2/B code scc[2]"
        },
        "ss": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Swati SiSwati  ssw  ssw  ssw  also known as Swazi"
        },
        "st": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Southern Sotho Sesotho  sot  sot  sot"
        },
        "su": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Sundanese Basa Sunda  sun  sun  sun"
        },
        "sv": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Swedish Svenska  swe  swe  swe"
        },
        "sw": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Swahili Kiswahili  swa  swa  swa + 2  macrolanguage"
        },
        "ta": {
          "type": "string",
          "maxLength": 3999,
          "description": "Dravidian Tamil தமிழ்  tam  tam  tam"
        },
        "te": {
          "type": "string",
          "maxLength": 3999,
          "description": "Dravidian Telugu తెలుగు  tel  tel  tel"
        },
        "tg": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Tajik тоҷикӣ, toçikī, تاجیکی‎  tgk  tgk  tgk"
        },
        "th": {
          "type": "string",
          "maxLength": 3999,
          "description": "Tai–Kadai Thai ไทย  tha  tha  tha"
        },
        "ti": {
          "type": "string",
          "maxLength": 3999,
          "description": "Afro-Asiatic Tigrinya ትግርኛ  tir  tir  tir"
        },
        "tk": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Turkmen Türkmen, Түркмен  tuk  tuk  tuk"
        },
        "tl": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Tagalog Wikang Tagalog  tgl  tgl  tgl  Note Filipino (Pilipino) has the code [fil]"
        },
        "tn": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Tswana Setswana  tsn  tsn  tsn"
        },
        "to": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Tonga (Tonga Islands) Faka Tonga  ton  ton  ton  also known as Tongan"
        },
        "tr": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Turkish Türkçe  tur  tur  tur"
        },
        "ts": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Tsonga Xitsonga  tso  tso  tso"
        },
        "tt": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Tatar татар теле, tatar tele  tat  tat  tat"
        },
        "tw": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Twi Twi  twi  twi  twi  Covered by macrolanguage [ak/aka]"
        },
        "ty": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austronesian Tahitian Reo Tahiti  tah  tah  tah  One of the Reo\nMā`ohi (languages of French Polynesia)"
        },
        "ug": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Uighur, Uyghur ئۇيغۇرچە‎, Uyghurche  uig  uig  uig"
        },
        "uk": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Ukrainian Українська  ukr  ukr  ukr"
        },
        "ur": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Urdu اردو  urd  urd  urd"
        },
        "uz": {
          "type": "string",
          "maxLength": 3999,
          "description": "Turkic Uzbek Oʻzbek, Ўзбек, أۇزبېك‎  uzb  uzb  uzb + 2 macrolanguage"
        },
        "ve": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Venda Tshivenḓa  ven  ven  ven"
        },
        "vi": {
          "type": "string",
          "maxLength": 3999,
          "description": "Austroasiatic Vietnamese Tiếng Việt  vie  vie  vie"
        },
        "vo": {
          "type": "string",
          "maxLength": 3999,
          "description": "Constructed Volapük Volapük  vol  vol  vol  constructed"
        },
        "wa": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Walloon Walon  wln  wln  wln"
        },
        "wo": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Wolof Wollof  wol  wol  wol"
        },
        "xh": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Xhosa isiXhosa  xho  xho  xho"
        },
        "yi": {
          "type": "string",
          "maxLength": 3999,
          "description": "Indo-European Yiddish ייִדיש  yid  yid  yid + 2  macrolanguage.\nChanged in 1989 from original ISO 639:1988, ji.[1]"
        },
        "yo": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Yoruba Yorùbá  yor  yor  yor"
        },
        "za": {
          "type": "string",
          "maxLength": 3999,
          "description": "Tai–Kadai Zhuang, Chuang Saɯ cueŋƅ, Saw cuengh  zha  zha  zha\n+ 16  macrolanguage"
        },
        "zh": {
          "type": "string",
          "maxLength": 3999,
          "description": "Sino-Tibetan Chinese 中文 (Zhōngwén), 汉语, 漢語  zho  chi  zho\n+ 16  macrolanguage"
        },
        "zu": {
          "type": "string",
          "maxLength": 3999,
          "description": "Niger–Congo Zulu isiZulu  zul  zul  zul"
        }
      }
    },
    "multiLingualText250": {
      "title": "Multi-lingual Textual Component based on ISO 639-1:2002 (Alpha-2 code), limited to 250 characters",
      "type": "object",
      "nullable": false,
      "additionalProperties": false,
      "description": "Same multi-lingual structure as the multiLingualText component (ISO 639-1:2002 two-letter language identifiers as property names), but each text is limited to a maximum of 250 characters.",
      "properties": {
        "aa": {
          "type": "string",
          "maxLength": 250
        },
        "ab": {
          "type": "string",
          "maxLength": 250
        },
        "ae": {
          "type": "string",
          "maxLength": 250
        },
        "af": {
          "type": "string",
          "maxLength": 250
        },
        "ak": {
          "type": "string",
          "maxLength": 250
        },
        "am": {
          "type": "string",
          "maxLength": 250
        },
        "an": {
          "type": "string",
          "maxLength": 250
        },
        "ar": {
          "type": "string",
          "maxLength": 250
        },
        "as": {
          "type": "string",
          "maxLength": 250
        },
        "av": {
          "type": "string",
          "maxLength": 250
        },
        "ay": {
          "type": "string",
          "maxLength": 250
        },
        "az": {
          "type": "string",
          "maxLength": 250
        },
        "ba": {
          "type": "string",
          "maxLength": 250
        },
        "be": {
          "type": "string",
          "maxLength": 250
        },
        "bg": {
          "type": "string",
          "maxLength": 250
        },
        "bh": {
          "type": "string",
          "maxLength": 250
        },
        "bi": {
          "type": "string",
          "maxLength": 250
        },
        "bm": {
          "type": "string",
          "maxLength": 250
        },
        "bn": {
          "type": "string",
          "maxLength": 250
        },
        "bo": {
          "type": "string",
          "maxLength": 250
        },
        "br": {
          "type": "string",
          "maxLength": 250
        },
        "bs": {
          "type": "string",
          "maxLength": 250
        },
        "ca": {
          "type": "string",
          "maxLength": 250
        },
        "ce": {
          "type": "string",
          "maxLength": 250
        },
        "ch": {
          "type": "string",
          "maxLength": 250
        },
        "co": {
          "type": "string",
          "maxLength": 250
        },
        "cr": {
          "type": "string",
          "maxLength": 250
        },
        "cs": {
          "type": "string",
          "maxLength": 250
        },
        "cu": {
          "type": "string",
          "maxLength": 250
        },
        "cv": {
          "type": "string",
          "maxLength": 250
        },
        "cy": {
          "type": "string",
          "maxLength": 250
        },
        "da": {
          "type": "string",
          "maxLength": 250
        },
        "de": {
          "type": "string",
          "maxLength": 250
        },
        "dv": {
          "type": "string",
          "maxLength": 250
        },
        "dz": {
          "type": "string",
          "maxLength": 250
        },
        "ee": {
          "type": "string",
          "maxLength": 250
        },
        "el": {
          "type": "string",
          "maxLength": 250
        },
        "en": {
          "type": "string",
          "maxLength": 250
        },
        "eo": {
          "type": "string",
          "maxLength": 250
        },
        "es": {
          "type": "string",
          "maxLength": 250
        },
        "et": {
          "type": "string",
          "maxLength": 250
        },
        "eu": {
          "type": "string",
          "maxLength": 250
        },
        "fa": {
          "type": "string",
          "maxLength": 250
        },
        "ff": {
          "type": "string",
          "maxLength": 250
        },
        "fi": {
          "type": "string",
          "maxLength": 250
        },
        "fj": {
          "type": "string",
          "maxLength": 250
        },
        "fo": {
          "type": "string",
          "maxLength": 250
        },
        "fr": {
          "type": "string",
          "maxLength": 250
        },
        "fy": {
          "type": "string",
          "maxLength": 250
        },
        "ga": {
          "type": "string",
          "maxLength": 250
        },
        "gd": {
          "type": "string",
          "maxLength": 250
        },
        "gl": {
          "type": "string",
          "maxLength": 250
        },
        "gn": {
          "type": "string",
          "maxLength": 250
        },
        "gu": {
          "type": "string",
          "maxLength": 250
        },
        "gv": {
          "type": "string",
          "maxLength": 250
        },
        "ha": {
          "type": "string",
          "maxLength": 250
        },
        "he": {
          "type": "string",
          "maxLength": 250
        },
        "hi": {
          "type": "string",
          "maxLength": 250
        },
        "ho": {
          "type": "string",
          "maxLength": 250
        },
        "hr": {
          "type": "string",
          "maxLength": 250
        },
        "ht": {
          "type": "string",
          "maxLength": 250
        },
        "hu": {
          "type": "string",
          "maxLength": 250
        },
        "hy": {
          "type": "string",
          "maxLength": 250
        },
        "hz": {
          "type": "string",
          "maxLength": 250
        },
        "ia": {
          "type": "string",
          "maxLength": 250
        },
        "id": {
          "type": "string",
          "maxLength": 250
        },
        "ie": {
          "type": "string",
          "maxLength": 250
        },
        "ig": {
          "type": "string",
          "maxLength": 250
        },
        "ii": {
          "type": "string",
          "maxLength": 250
        },
        "ik": {
          "type": "string",
          "maxLength": 250
        },
        "io": {
          "type": "string",
          "maxLength": 250
        },
        "is": {
          "type": "string",
          "maxLength": 250
        },
        "it": {
          "type": "string",
          "maxLength": 250
        },
        "iu": {
          "type": "string",
          "maxLength": 250
        },
        "ja": {
          "type": "string",
          "maxLength": 250
        },
        "jv": {
          "type": "string",
          "maxLength": 250
        },
        "ka": {
          "type": "string",
          "maxLength": 250
        },
        "kg": {
          "type": "string",
          "maxLength": 250
        },
        "ki": {
          "type": "string",
          "maxLength": 250
        },
        "kj": {
          "type": "string",
          "maxLength": 250
        },
        "kk": {
          "type": "string",
          "maxLength": 250
        },
        "kl": {
          "type": "string",
          "maxLength": 250
        },
        "km": {
          "type": "string",
          "maxLength": 250
        },
        "kn": {
          "type": "string",
          "maxLength": 250
        },
        "ko": {
          "type": "string",
          "maxLength": 250
        },
        "kr": {
          "type": "string",
          "maxLength": 250
        },
        "ks": {
          "type": "string",
          "maxLength": 250
        },
        "ku": {
          "type": "string",
          "maxLength": 250
        },
        "kv": {
          "type": "string",
          "maxLength": 250
        },
        "kw": {
          "type": "string",
          "maxLength": 250
        },
        "ky": {
          "type": "string",
          "maxLength": 250
        },
        "la": {
          "type": "string",
          "maxLength": 250
        },
        "lb": {
          "type": "string",
          "maxLength": 250
        },
        "lg": {
          "type": "string",
          "maxLength": 250
        },
        "li": {
          "type": "string",
          "maxLength": 250
        },
        "ln": {
          "type": "string",
          "maxLength": 250
        },
        "lo": {
          "type": "string",
          "maxLength": 250
        },
        "lt": {
          "type": "string",
          "maxLength": 250
        },
        "lu": {
          "type": "string",
          "maxLength": 250
        },
        "lv": {
          "type": "string",
          "maxLength": 250
        },
        "mg": {
          "type": "string",
          "maxLength": 250
        },
        "mh": {
          "type": "string",
          "maxLength": 250
        },
        "mi": {
          "type": "string",
          "maxLength": 250
        },
        "mk": {
          "type": "string",
          "maxLength": 250
        },
        "ml": {
          "type": "string",
          "maxLength": 250
        },
        "mn": {
          "type": "string",
          "maxLength": 250
        },
        "mr": {
          "type": "string",
          "maxLength": 250
        },
        "ms": {
          "type": "string",
          "maxLength": 250
        },
        "mt": {
          "type": "string",
          "maxLength": 250
        },
        "my": {
          "type": "string",
          "maxLength": 250
        },
        "na": {
          "type": "string",
          "maxLength": 250
        },
        "nb": {
          "type": "string",
          "maxLength": 250
        },
        "nd": {
          "type": "string",
          "maxLength": 250
        },
        "ne": {
          "type": "string",
          "maxLength": 250
        },
        "ng": {
          "type": "string",
          "maxLength": 250
        },
        "nl": {
          "type": "string",
          "maxLength": 250
        },
        "nn": {
          "type": "string",
          "maxLength": 250
        },
        "no": {
          "type": "string",
          "maxLength": 250
        },
        "nr": {
          "type": "string",
          "maxLength": 250
        },
        "nv": {
          "type": "string",
          "maxLength": 250
        },
        "ny": {
          "type": "string",
          "maxLength": 250
        },
        "oc": {
          "type": "string",
          "maxLength": 250
        },
        "oj": {
          "type": "string",
          "maxLength": 250
        },
        "om": {
          "type": "string",
          "maxLength": 250
        },
        "or": {
          "type": "string",
          "maxLength": 250
        },
        "os": {
          "type": "string",
          "maxLength": 250
        },
        "pa": {
          "type": "string",
          "maxLength": 250
        },
        "pi": {
          "type": "string",
          "maxLength": 250
        },
        "pl": {
          "type": "string",
          "maxLength": 250
        },
        "ps": {
          "type": "string",
          "maxLength": 250
        },
        "pt": {
          "type": "string",
          "maxLength": 250
        },
        "qu": {
          "type": "string",
          "maxLength": 250
        },
        "rm": {
          "type": "string",
          "maxLength": 250
        },
        "rn": {
          "type": "string",
          "maxLength": 250
        },
        "ro": {
          "type": "string",
          "maxLength": 250
        },
        "ru": {
          "type": "string",
          "maxLength": 250
        },
        "rw": {
          "type": "string",
          "maxLength": 250
        },
        "sa": {
          "type": "string",
          "maxLength": 250
        },
        "sc": {
          "type": "string",
          "maxLength": 250
        },
        "sd": {
          "type": "string",
          "maxLength": 250
        },
        "se": {
          "type": "string",
          "maxLength": 250
        },
        "sg": {
          "type": "string",
          "maxLength": 250
        },
        "si": {
          "type": "string",
          "maxLength": 250
        },
        "sk": {
          "type": "string",
          "maxLength": 250
        },
        "sl": {
          "type": "string",
          "maxLength": 250
        },
        "sm": {
          "type": "string",
          "maxLength": 250
        },
        "sn": {
          "type": "string",
          "maxLength": 250
        },
        "so": {
          "type": "string",
          "maxLength": 250
        },
        "sq": {
          "type": "string",
          "maxLength": 250
        },
        "sr": {
          "type": "string",
          "maxLength": 250
        },
        "ss": {
          "type": "string",
          "maxLength": 250
        },
        "st": {
          "type": "string",
          "maxLength": 250
        },
        "su": {
          "type": "string",
          "maxLength": 250
        },
        "sv": {
          "type": "string",
          "maxLength": 250
        },
        "sw": {
          "type": "string",
          "maxLength": 250
        },
        "ta": {
          "type": "string",
          "maxLength": 250
        },
        "te": {
          "type": "string",
          "maxLength": 250
        },
        "tg": {
          "type": "string",
          "maxLength": 250
        },
        "th": {
          "type": "string",
          "maxLength": 250
        },
        "ti": {
          "type": "string",
          "maxLength": 250
        },
        "tk": {
          "type": "string",
          "maxLength": 250
        },
        "tl": {
          "type": "string",
          "maxLength": 250
        },
        "tn": {
          "type": "string",
          "maxLength": 250
        },
        "to": {
          "type": "string",
          "maxLength": 250
        },
        "tr": {
          "type": "string",
          "maxLength": 250
        },
        "ts": {
          "type": "string",
          "maxLength": 250
        },
        "tt": {
          "type": "string",
          "maxLength": 250
        },
        "tw": {
          "type": "string",
          "maxLength": 250
        },
        "ty": {
          "type": "string",
          "maxLength": 250
        },
        "ug": {
          "type": "string",
          "maxLength": 250
        },
        "uk": {
          "type": "string",
          "maxLength": 250
        },
        "ur": {
          "type": "string",
          "maxLength": 250
        },
        "uz": {
          "type": "string",
          "maxLength": 250
        },
        "ve": {
          "type": "string",
          "maxLength": 250
        },
        "vi": {
          "type": "string",
          "maxLength": 250
        },
        "vo": {
          "type": "string",
          "maxLength": 250
        },
        "wa": {
          "type": "string",
          "maxLength": 250
        },
        "wo": {
          "type": "string",
          "maxLength": 250
        },
        "xh": {
          "type": "string",
          "maxLength": 250
        },
        "yi": {
          "type": "string",
          "maxLength": 250
        },
        "yo": {
          "type": "string",
          "maxLength": 250
        },
        "za": {
          "type": "string",
          "maxLength": 250
        },
        "zh": {
          "type": "string",
          "maxLength": 250
        },
        "zu": {
          "type": "string",
          "maxLength": 250
        }
      }
    },
    "program": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "projectStatus": {
          "type": "string",
          "enum": [
            "BUILDING_PERMISSION",
            "COMMERCIAL_LAUNCH",
            "CONSTRUCTION_START",
            "UNDER_CONSTRUCTION",
            "SHELL_WORKS",
            "FINISHING_WORKS",
            "LAST_CHANCE",
            "PROJECT_ENDED",
            "NOT_SPECIFIED"
          ],
          "description": "The current status of the project."
        },
        "buildingStartDate": {
          "type": "string",
          "format": "date",
          "description": "The date on which the construction of the project starts (construction start); the date is an ISO 8601 formatted string (YYYY-MM-DD)."
        },
        "deliveryDate": {
          "type": "string",
          "format": "date",
          "description": "The expected delivery date of the project (construction end); the date is an ISO 8601 formatted string (YYYY-MM-DD)."
        }
      }
    },
    "projectData": {
      "type": "object",
      "oneOf": [
        {
          "$ref": "#/$defs/projectDataNewBuild"
        },
        {
          "$ref": "#/$defs/projectDataNewHome"
        }
      ]
    },
    "projectDataNewBuild": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "estateType",
        "estateSubType",
        "distributionType",
        "location",
        "units",
        "texts"
      ],
      "properties": {
        "estateType": {
          "enum": [
            "NEW_BUILD_PROJECT"
          ]
        },
        "estateSubType": {
          "$ref": "#/$defs/projectEstateSubType"
        },
        "distributionType": {
          "$ref": "#/$defs/projectDistributionType"
        },
        "units": {
          "$ref": "#/$defs/unit"
        },
        "location": {
          "$ref": "#/$defs/location"
        },
        "program": {
          "$ref": "#/$defs/program"
        },
        "structure": {
          "$ref": "#/$defs/projectStructure"
        },
        "texts": {
          "$ref": "#/$defs/projectTexts"
        },
        "links": {
          "$ref": "#/$defs/links"
        },
        "contact": {
          "$ref": "#/$defs/contact"
        }
      }
    },
    "projectDataNewHome": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "estateType",
        "estateSubType",
        "distributionType",
        "location",
        "texts"
      ],
      "properties": {
        "estateType": {
          "enum": [
            "NEW_HOME_PROJECT"
          ]
        },
        "estateSubType": {
          "$ref": "#/$defs/projectEstateSubType"
        },
        "distributionType": {
          "$ref": "#/$defs/projectDistributionType"
        },
        "units": {
          "$ref": "#/$defs/unit"
        },
        "location": {
          "$ref": "#/$defs/location"
        },
        "program": {
          "$ref": "#/$defs/program"
        },
        "structure": {
          "$ref": "#/$defs/projectStructure"
        },
        "texts": {
          "$ref": "#/$defs/projectTexts"
        },
        "links": {
          "$ref": "#/$defs/links"
        },
        "contact": {
          "$ref": "#/$defs/contact"
        }
      }
    },
    "projectDistributionType": {
      "type": "string",
      "nullable": false,
      "minLength": 1,
      "maxLength": 50,
      "enum": [
        "BUY",
        "RENT",
        "BUY_RENT"
      ],
      "description": "The distribution type of the project. It indicates whether the property units\nare available for purchase (BUY) or for rent (RENT) or both (BUY_RENT)."
    },
    "projectEstateSubType": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 1,
      "maxLength": 50,
      "enum": [
        "NEW_BUILD_PROGRAM_APARTMENT",
        "NEW_BUILD_PROGRAM_HOUSE",
        "NEW_BUILD_COMMERCIAL",
        "NEW_BUILD_OTHER_RESIDENTIAL",
        "HOUSE_TO_BUILD",
        "NEW_HOME_CATALOG"
      ],
      "description": "The sub-type of the estate being offered. The sub-type provides more\nspecific information about the estate and can be used to further classify\nthe property within the broader category defined by the estateType."
    },
    "projectMetadata": {
      "type": "object",
      "description": "metadata associated with the project in Immowelt system.",
      "additionalProperties": false,
      "required": [
        "source"
      ],
      "properties": {
        "source": {
          "type": "object",
          "required": [
            "offererEstateId",
            "offererMarketingKey"
          ],
          "description": "metadata related to the source / sender system",
          "additionalProperties": false,
          "properties": {
            "offererMarketingKey": {
              "type": "string",
              "description": "the human readable key of a real estate classified given by the offerer (e.g. real estate agent) within the sender software."
            },
            "offererEstateId": {
              "type": "string",
              "description": "unique identifier of the real estate assigned by the sender software system. Can be used for API calls"
            }
          }
        },
        "portalWebKey": {
          "description": "short id of the real estate classified on a public website. generated by the portal/receiver.",
          "type": "string"
        }
      }
    },
    "projectStructure": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "building": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "numberOfFloors": {
              "type": "integer",
              "minimum": 1,
              "maximum": 99,
              "description": "total number of floors of a building. e.g. - a house is rented, it has 2 floors -> numberOfFloors: 2 - a 5 floor office building is sold ->  numberOfFloors: 5"
            }
          }
        }
      }
    },
    "projectTexts": {
      "type": "object",
      "description": "the texts of a project can be transmitted in several languages. The corresponding data element therefore is an object and contains data elements which contain the language abbreviation in ISO 639-1 as a name.",
      "additionalProperties": false,
      "required": [
        "headline"
      ],
      "properties": {
        "headline": {
          "description": "headline of the project; maximum 250 characters per language",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText250"
            }
          ]
        },
        "description": {
          "description": "description of the project",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "features": {
          "description": "description of the interior, features of the project",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "extendedInformation": {
          "description": "additional information of the project",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "area": {
          "description": "area description of the project",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        }
      }
    },
    "unit": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "provisionType"
      ],
      "properties": {
        "numberOfUnits": {
          "type": "number",
          "minimum": 0,
          "maximum": 999999,
          "description": "The total number of units available in the project."
        },
        "priceFrom": {
          "type": "number",
          "minimum": 0,
          "maximum": 9999999999999,
          "exclusiveMaximum": true,
          "description": "The starting price for the units in the project."
        },
        "priceTo": {
          "type": "number",
          "minimum": 0,
          "maximum": 9999999999999,
          "exclusiveMaximum": true,
          "description": "The maximum price for the units in the project."
        },
        "livingSpaceFrom": {
          "type": "number",
          "minimum": 0,
          "maximum": 999999,
          "exclusiveMaximum": true,
          "description": "The minimum living space for the units in the project, measured in square meters."
        },
        "livingSpaceTo": {
          "type": "number",
          "minimum": 0,
          "maximum": 999999,
          "exclusiveMaximum": true,
          "description": "The maximum living space for the units in the project, measured in square meters."
        },
        "numberOfRoomsFrom": {
          "type": "number",
          "minimum": 0,
          "maximum": 999999,
          "exclusiveMaximum": true,
          "description": "The minimum number of rooms for the units in the project."
        },
        "numberOfRoomsTo": {
          "type": "number",
          "minimum": 0,
          "maximum": 999999,
          "exclusiveMaximum": true,
          "description": "The maximum number of rooms for the units in the project."
        },
        "furnishingLevel": {
          "type": "string",
          "enum": [
            "NOT_PROVIDED",
            "STANDARD",
            "UPSCALE",
            "FULL"
          ],
          "description": "The furnishing level of the units in the project. Not provided (Keine Angabe) Standard (Standard) Upscale (Gehoben) Full (Vollständig)"
        },
        "provisionType": {
          "type": "string",
          "enum": [
            "PROVISION_FREE",
            "PROVISION_FOR_BUYER",
            "NOT_PROVIDED"
          ],
          "description": "The type of provision for the units in the project."
        },
        "provisionPercent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "exclusiveMaximum": true,
          "description": "The percentage of provision for the units in the project."
        },
        "provisionIsVatIncluded": {
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_PROVIDED"
          ],
          "default": "NOT_PROVIDED",
          "description": "Indicates whether the provision percentage includes VAT."
        },
        "soldOutPercentage": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "exclusiveMaximum": true,
          "description": "The percentage of units in the project that have already been sold or rented."
        }
      }
    }
  }
}