{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/immowelt/json-schema/immowelt-api-request-schema.json",
  "title": "apiRequest",
  "description": "Request 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/apiRequest",
  "type": "object",
  "required": [
    "data",
    "metadata"
  ],
  "additionalProperties": false,
  "properties": {
    "data": {
      "$ref": "#/$defs/data"
    },
    "metadata": {
      "$ref": "#/$defs/metadata"
    },
    "media": {
      "$ref": "#/$defs/mediaRequest"
    },
    "contact": {
      "$ref": "#/$defs/contact"
    }
  },
  "$defs": {
    "accounting": {
      "type": "object",
      "properties": {
        "accounting": {
          "type": "string",
          "description": "How often the costs are paid and how: - FIXED: fixed amount paid each time unit - REAL_USAGE: amount calculated on real usage paid each time unit - ADJUSTMENT: fixed amount paid each time unit and regular\n  (yearly) adjustment based on real usage",
          "enum": [
            "FIXED",
            "REAL_USAGE",
            "ADJUSTMENT"
          ]
        }
      }
    },
    "conditions": {
      "type": "object",
      "description": "Condition information of the property.",
      "additionalProperties": false,
      "properties": {
        "buildState": {
          "type": "string",
          "enum": [
            "FIRST_TIME_USE",
            "FIRST_TIME_USE_AFTER_REFURBISHMENT",
            "MINT_CONDITION",
            "MODERNISED",
            "REFURBISHED",
            "FULLY_RENOVATED",
            "PARTLY_RENOVATED",
            "NEED_OF_RENOVATION",
            "WELL_KEPT",
            "NEGOTIABLE",
            "RIPE_FOR_DEMOLITION",
            "PROJECTED",
            "NO_INFORMATION",
            "RESTRUCTURED",
            "TO_RESTORE",
            "TO_REFURBISH"
          ],
          "description": "What is the current condition of the property? - FIRST_TIME_USE: never been inhabited before - FIRST_TIME_USE_AFTER_REFURBISHMENT: never been inhabited since\n  last refurbishment\n- MINT_CONDITION: perfect shape - MODERNISED: property architecture has been modernised - REFURBISHED: property is now as new - FULLY_RENOVATED: All the property is renovated - PARTLY_RENOVATED: some parts of the property have been renovated - NEED_OF_RENOVATION: the property needs to be renovated? - WELL_KEPT: good shape. - NEGOTIABLE: the property is not very well kept but it can be used - RIPE_FOR_DEMOLITION: Property to be demolished - PROJECTED: Not yet built. A project state. - NO_INFORMATION: Same as if you don't provide any data in this field. - RESTRUCTURED: redesigned, overhauled - TO_RESTORE: property needs restoration. - TO_REFURBISH: property needs refurbishment."
        },
        "ageState": {
          "type": "string",
          "enum": [
            "OLD",
            "NEW"
          ],
          "description": "the age of the building: OLD is defined as built before 1945. NEW is defined as built within the last 5 years."
        },
        "lastModernisation": {
          "type": "integer",
          "description": "last year of modernisation"
        },
        "constructionStyle": {
          "description": "General construction style of tbe building",
          "type": "string",
          "enum": [
            "PREFABRICATED",
            "SOLID",
            "SOLID_PREFABRICATED",
            "TIMBERHOUSE",
            "WOOD_PREFABRICATED",
            "UNSPECIFIED"
          ]
        },
        "yearOfConstruction": {
          "type": "integer",
          "nullable": false,
          "minimum": 1000,
          "maximum": 3000,
          "description": "year of construction"
        }
      }
    },
    "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"
                }
              }
            }
          }
        }
      }
    },
    "countrySpecific": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "de": {
          "type": "object",
          "additionalProperties": false
        },
        "fr": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "business": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "isBusinessSold": {
                  "description": "Is the business run inside the property sold ?",
                  "type": "boolean"
                },
                "businessType": {
                  "description": "main type of the business",
                  "type": "string",
                  "enum": [
                    "FOOD",
                    "TRANSPORT",
                    "GASTRONOMY_HOTEL",
                    "LOCAL_SHOP",
                    "WELLNESS_HEALTHCARE",
                    "HOUSE_EQUIPMENT",
                    "COMPUTER_TELECOM",
                    "LEISURE",
                    "FASHION",
                    "HEALTH",
                    "LOCAL"
                  ]
                },
                "businessSubType": {
                  "description": "subtype of the business",
                  "type": "string",
                  "enum": [
                    "MEAT_SHOP",
                    "BAKERY",
                    "CHOCOLATES_CANDIES",
                    "GREENGROCERY",
                    "GROCERY",
                    "DAIRY",
                    "FISH_STORE",
                    "CATERING",
                    "WINE",
                    "MINI_MARKET",
                    "SUPERMARKET",
                    "DRIVING_SCHOOL",
                    "CAR_MOTORCYCLE_DEALER",
                    "GARAGE_SERVICE_STATION",
                    "CAFE_BAR_PUB",
                    "CAMPING",
                    "CREPERIE",
                    "ICECREAM",
                    "HOTEL",
                    "PIZZERIA",
                    "RESTAURANT",
                    "FASTFOOD",
                    "TEAROOM",
                    "GIFT_SHOP",
                    "FLORIST",
                    "HABERDASHERY",
                    "KIOSK",
                    "HAIRDRESSING",
                    "BEAUTY",
                    "PERFUMERY",
                    "FURNISHING",
                    "HOUSEHOLD_APPLIANCES",
                    "COMPUTER_SHOP_OFFICE_SUPPLY",
                    "PHONES",
                    "TRAVEL_AGENCY",
                    "ARTS_MUSIC",
                    "SPORTS_CLUB",
                    "CLUB_DISCOTHEQUE",
                    "ARTS_GALLERY",
                    "COMPUTER_SHOP",
                    "BOOKS",
                    "TOYS",
                    "JEWELLERY",
                    "SHOES",
                    "LEATHER",
                    "CLOTHES",
                    "TAXI_AMBULANCE",
                    "DENTAL",
                    "PHYSIOTHERAPIST",
                    "RETIREMENT_HOME",
                    "OPTIC",
                    "PHARMACY",
                    "REAL_ESTATE",
                    "PETS",
                    "DIY",
                    "SHOE_REPAIR",
                    "RELOCATION",
                    "ELECTRICITY",
                    "GARDENER",
                    "LAUNDROMAT",
                    "CARPENTRY",
                    "PHOTO",
                    "PLUMBING_HEATING",
                    "LAUNDRY",
                    "LOCKSMITH",
                    "GLASSMAKING"
                  ]
                },
                "revenue": {
                  "description": "total revenue of the business in the current year",
                  "type": "number"
                },
                "revenueOneYearAgo": {
                  "description": "total revenue of the business one year ago",
                  "type": "number"
                },
                "revenueTwoYearsAgo": {
                  "description": "total revenue of the business two years ago",
                  "type": "number"
                },
                "revenueDetails": {
                  "description": "additional comment about the revenue of the business",
                  "type": "string"
                },
                "netIncome": {
                  "description": "net income of the business in the current year",
                  "type": "number"
                },
                "netIncomeOneYearAgo": {
                  "description": "net income of the business one year ago",
                  "type": "number"
                },
                "netIncomeTwoYearsAgo": {
                  "description": "net income of the business two years ago",
                  "type": "number"
                },
                "isPartOfNetwork": {
                  "description": "the business is part of a bigger network",
                  "type": "boolean"
                },
                "downPayment": {
                  "description": "down payment for the purchase of the business in euros",
                  "type": "number"
                },
                "isNoNuisance": {
                  "description": "the business must not inconvenience neighbours",
                  "type": "boolean"
                },
                "isDivisible": {
                  "description": "parts of the business can be sold or rent. parts can be listed or not.",
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "currency": {
      "type": "string",
      "description": "the currency of all prices defined below. the currency must be entered as ISO 4217 currency code. Please refer to https://www.iso.org/iso-4217-currency-codes.html Last checked: October 1st, 2021 Here are the alphabetic three-letter country codes: - AED: UAE Dirham - AFN: Afghani - ALL: Lek - AMD: Armenian Dram - ANG: Netherlands Antillean Guilder - AOA: Kwanza - ARS: Argentine Peso - AUD: Australian Dollar - AWG: Aruban Florin - AZN: Azerbaijan Manat - BAM: Convertible Mark - BBD: Barbados Dollar - BDT: Taka - BGN: Bulgarian Lev - BHD: Bahraini Dinar - BIF: Burundi Franc - BMD: Bermudian Dollar - BND: Brunei Dollar - BOB: Boliviano - BOV: Mvdol - BRL: Brazilian Real - BSD: Bahamian Dollar - BTN: Ngultrum - BWP: Pula - BYN: Belarusian Ruble - BZD: Belize Dollar - CAD: Canadian Dollar - CDF: Congolese Franc - CHE: WIR Euro - CHF: Swiss Franc - CHW: WIR Franc - CLF: Unidad de Fomento - CLP: Chilean Peso - CNY: Yuan Renminbi - COP: Colombian Peso - COU: Unidad de Valor Real - CRC: Costa Rican Colon - CUC: Peso Convertible - CUP: Cuban Peso - CVE: Cabo Verde Escudo - CZK: Czech Koruna - DJF: Djibouti Franc - DKK: Danish Krone - DOP: Dominican Peso - DZD: Algerian Dinar - EGP: Egyptian Pound - ERN: Nakfa - ETB: Ethiopian Birr - EUR: Euro - FJD: Fiji Dollar - FKP: Falkland Islands Pound - GBP: Pound Sterling - GEL: Lari - GHS: Ghana Cedi - GIP: Gibraltar Pound - GMD: Dalasi - GNF: Guinean Franc - GTQ: Quetzal - GYD: Guyana Dollar - HKD: Hong Kong Dollar - HNL: Lempira - HRK: Kuna - HTG: Gourde - HUF: Forint - IDR: Rupiah - ILS: New Israeli Sheqel - INR: Indian Rupee - IQD: Iraqi Dinar - IRR: Iranian Rial - ISK: Iceland Krona - JMD: Jamaican Dollar - JOD: Jordanian Dinar - JPY: Yen - KES: Kenyan Shilling - KGS: Som - KHR: Riel - KMF: Comorian Franc - KPW: North Korean Won - KRW: Won - KWD: Kuwaiti Dinar - KYD: Cayman Islands Dollar - KZT: Tenge - LAK: Lao Kip - LBP: Lebanese Pound - LKR: Sri Lanka Rupee - LRD: Liberian Dollar - LSL: Loti - LYD: Libyan Dinar - MAD: Moroccan Dirham - MDL: Moldovan Leu - MGA: Malagasy Ariary - MKD: Denar - MMK: Kyat - MNT: Tugrik - MOP: Pataca - MRU: Ouguiya - MUR: Mauritius Rupee - MVR: Rufiyaa - MWK: Malawi Kwacha - MXN: Mexican Peso - MXV: Mexican Unidad de Inversion (UDI) - MYR: Malaysian Ringgit - MZN: Mozambique Metical - NAD: Namibia Dollar - NGN: Naira - NIO: Cordoba Oro - NOK: Norwegian Krone - NPR: Nepalese Rupee - NZD: New Zealand Dollar - OMR: Rial Omani - PAB: Balboa - PEN: Sol - PGK: Kina - PHP: Philippine Peso - PKR: Pakistan Rupee - PLN: Zloty - PYG: Guarani - QAR: Qatari Rial - RON: Romanian Leu - RSD: Serbian Dinar - RUB: Russian Ruble - RWF: Rwanda Franc - SAR: Saudi Riyal - SBD: Solomon Islands Dollar - SCR: Seychelles Rupee - SDG: Sudanese Pound - SEK: Swedish Krona - SGD: Singapore Dollar - SHP: Saint Helena Pound - SLL: Leone - SOS: Somali Shilling - SRD: Surinam Dollar - SSP: South Sudanese Pound - STN: Dobra - SVC: El Salvador Colon - SYP: Syrian Pound - SZL: Lilangeni - THB: Baht - TJS: Somoni - TMT: Turkmenistan New Manat - TND: Tunisian Dinar - TOP: Pa'anga - TRY: Turkish Lira - TTD: Trinidad and Tobago Dollar - TWD: New Taiwan Dollar - TZS: Tanzanian Shilling - UAH: Hryvnia - UGX: Uganda Shilling - USD: US Dollar - USN: US Dollar (Next day) - UYI: Uruguay Peso en Unidades Indexadas (UI) - UYU: Peso Uruguayo - UYW: Unidad Previsional - UZS: Uzbekistan Sum - VED: Bolívar Soberano - VES: Bolívar Soberano - VND: Dong - VUV: Vatu - WST: Tala - XAF: CFA Franc BEAC - XAG: Silver - XAU: Gold - XBA: Bond Markets Unit European Composite Unit (EURCO) - XBB: Bond Markets Unit European Monetary Unit (E.M.U.-6) - XBC: Bond Markets Unit European Unit of Account 9 (E.U.A.-9) - XBD: Bond Markets Unit European Unit of Account 17 (E.U.A.-17) - XCD: East Caribbean Dollar - XDR: SDR (Special Drawing Right) - XOF: CFA Franc BCEAO - XPD: Palladium - XPF: CFP Franc - XPT: Platinum - XSU: Sucre - XTS: Codes specifically reserved for testing purposes - XUA: ADB Unit of Account - XXX: The codes assigned for transactions where no currency is involved - YER: Yemeni Rial - ZAR: Rand - ZMW: Zambian Kwacha - ZWL: Zimbabwe Dollar",
      "default": "EUR",
      "enum": [
        "AED",
        "AFN",
        "ALL",
        "AMD",
        "ANG",
        "AOA",
        "ARS",
        "AUD",
        "AWG",
        "AZN",
        "BAM",
        "BBD",
        "BDT",
        "BGN",
        "BHD",
        "BIF",
        "BMD",
        "BND",
        "BOB",
        "BOV",
        "BRL",
        "BSD",
        "BTN",
        "BWP",
        "BYN",
        "BZD",
        "CAD",
        "CDF",
        "CHE",
        "CHF",
        "CHW",
        "CLF",
        "CLP",
        "CNY",
        "COP",
        "COU",
        "CRC",
        "CUC",
        "CUP",
        "CVE",
        "CZK",
        "DJF",
        "DKK",
        "DOP",
        "DZD",
        "EGP",
        "ERN",
        "ETB",
        "EUR",
        "FJD",
        "FKP",
        "GBP",
        "GEL",
        "GHS",
        "GIP",
        "GMD",
        "GNF",
        "GTQ",
        "GYD",
        "HKD",
        "HNL",
        "HRK",
        "HTG",
        "HUF",
        "IDR",
        "ILS",
        "INR",
        "IQD",
        "IRR",
        "ISK",
        "JMD",
        "JOD",
        "JPY",
        "KES",
        "KGS",
        "KHR",
        "KMF",
        "KPW",
        "KRW",
        "KWD",
        "KYD",
        "KZT",
        "LAK",
        "LBP",
        "LKR",
        "LRD",
        "LSL",
        "LYD",
        "MAD",
        "MDL",
        "MGA",
        "MKD",
        "MMK",
        "MNT",
        "MOP",
        "MRU",
        "MUR",
        "MVR",
        "MWK",
        "MXN",
        "MXV",
        "MYR",
        "MZN",
        "NAD",
        "NGN",
        "NIO",
        "NOK",
        "NPR",
        "NZD",
        "OMR",
        "PAB",
        "PEN",
        "PGK",
        "PHP",
        "PKR",
        "PLN",
        "PYG",
        "QAR",
        "RON",
        "RSD",
        "RUB",
        "RWF",
        "SAR",
        "SBD",
        "SCR",
        "SDG",
        "SEK",
        "SGD",
        "SHP",
        "SLL",
        "SOS",
        "SRD",
        "SSP",
        "STN",
        "SVC",
        "SYP",
        "SZL",
        "THB",
        "TJS",
        "TMT",
        "TND",
        "TOP",
        "TRY",
        "TTD",
        "TWD",
        "TZS",
        "UAH",
        "UGX",
        "USD",
        "USN",
        "UYI",
        "UYU",
        "UYW",
        "UZS",
        "VED",
        "VES",
        "VND",
        "VUV",
        "WST",
        "XAF",
        "XAG",
        "XAU",
        "XBA",
        "XBB",
        "XBC",
        "XBD",
        "XCD",
        "XDR",
        "XOF",
        "XPD",
        "XPF",
        "XPT",
        "XSU",
        "XTS",
        "XUA",
        "XXX",
        "YER",
        "ZAR",
        "ZMW",
        "ZWL"
      ]
    },
    "data": {
      "type": "object",
      "required": [
        "estateType",
        "prices",
        "location",
        "distributionType"
      ],
      "additionalProperties": false,
      "properties": {
        "estateType": {
          "$ref": "#/$defs/estateType"
        },
        "estateSubType": {
          "$ref": "#/$defs/estateSubType"
        },
        "distributionType": {
          "$ref": "#/$defs/distributionType"
        },
        "location": {
          "$ref": "#/$defs/location"
        },
        "prices": {
          "$ref": "#/$defs/prices"
        },
        "spaces": {
          "$ref": "#/$defs/spaces"
        },
        "conditions": {
          "$ref": "#/$defs/conditions"
        },
        "energy": {
          "$ref": "#/$defs/energy"
        },
        "features": {
          "$ref": "#/$defs/features"
        },
        "structure": {
          "$ref": "#/$defs/structure"
        },
        "texts": {
          "$ref": "#/$defs/texts"
        },
        "management": {
          "$ref": "#/$defs/management"
        },
        "countrySpecific": {
          "$ref": "#/$defs/countrySpecific"
        },
        "contact": {
          "$ref": "#/$defs/contact"
        },
        "links": {
          "$ref": "#/$defs/links"
        }
      }
    },
    "distributionType": {
      "type": "string",
      "nullable": false,
      "minLength": 1,
      "enum": [
        "BUY",
        "RENT",
        "COMPULSORY_AUCTION",
        "BUY_AUCTION"
      ],
      "description": "the distribution type of the property.\n- BUY: regular type of property for sale\n  de: Kauf\n- RENT: regular type of property for rent\n  de: Miete\n- COMPULSORY_AUCTION: auction ordered by the courts\n  de: Zwangsversteigerung\n- BUY_AUCTION: bids for the property can be submitted within a\n  limited time period. The seller can accept, reject or negotiate\n  the bid. Most important difference to a classic auction: the\n  highest bid does not necessarily have to win.\n  de: Bieterverfahren"
    },
    "energy": {
      "type": "object",
      "description": "Energy and heating information of the property.",
      "additionalProperties": false,
      "properties": {
        "energyType": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "heatMethod": {
              "type": "string",
              "enum": [
                "CENTRAL",
                "INDIVIDUAL",
                "STOREY"
              ],
              "description": "heating method, per storey/floor or central in building."
            },
            "heatForm": {
              "description": "via which medium the heat is emitted",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "air": {
                  "type": "boolean",
                  "description": "(warm) air heater does not use a medium to store its heat. Air is sucked in, heated and directly passed on to the rooms to be heated. fr: aerotherme"
                },
                "radiator": {
                  "type": "boolean",
                  "description": "radiators are connected to heating circuit through which hot water flows to distribute the heat in the rooms."
                },
                "stove": {
                  "type": "boolean",
                  "description": "stove that can be fired with wood, oil, coal"
                },
                "underfloor": {
                  "type": "boolean",
                  "description": "pipes are laid in the floor through which warm water flows and heats the floor and thus also the rooms."
                },
                "wallCeiling": {
                  "type": "boolean",
                  "description": "heating elements are mounted on the wall or ceiling"
                }
              }
            },
            "energySource": {
              "description": "Raw materials, substances and sources used for the production of heat. Multiple answers are possible",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "coal": {
                  "type": "boolean"
                },
                "districtHeating": {
                  "type": "boolean",
                  "description": "system for distributing heat generated in a centralized location"
                },
                "electric": {
                  "type": "boolean"
                },
                "gas": {
                  "type": "boolean"
                },
                "geothermal": {
                  "type": "boolean",
                  "description": "thermal energy from within the earth"
                },
                "liquidGas": {
                  "type": "boolean"
                },
                "oil": {
                  "type": "boolean"
                },
                "solarHeat": {
                  "type": "boolean"
                },
                "solarPower": {
                  "type": "boolean"
                },
                "wind": {
                  "type": "boolean"
                },
                "wood": {
                  "type": "boolean"
                },
                "woodPellet": {
                  "type": "boolean"
                }
              }
            },
            "energyGeneration": {
              "description": "energyGeneration is the way energy sources are used. e.g. coal, gas, oil are burned (FOSSILBURNING), electric + geothermal are used with HEATPUMP.",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "fossilburning": {
                  "type": "boolean"
                },
                "heatpump": {
                  "type": "boolean"
                },
                "combinedHeatAndPowerPlant": {
                  "type": "boolean"
                }
              }
            },
            "maxElectricalPower": {
              "type": "integer",
              "description": "maximum electric power available for the property, expressed in kVA"
            }
          }
        },
        "countrySpecific": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "de": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "energyCertificates": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "certificateType"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "nameOfCertificate": {
                        "type": "string",
                        "description": "en: the name of the certificate de: Bezeichnung des Energieausweis"
                      },
                      "certificateType": {
                        "type": "string",
                        "enum": [
                          "ENEV2008",
                          "ENEV2014",
                          "ENEV2026",
                          "NOT_AVAILABLE",
                          "NOT_NECESSARY",
                          "AT_VISIT"
                        ],
                        "description": "en: Year according to ENEV: Values: \"ENEV2008\" = before 1.5.2014, \"ENEV2014\" = from 1.5.2014, \"ENEV2026\" = from 2026 onwards, \"NOT_NECESSARY\" e.g. for monument protection, \"AT_VISIT\" will be shown when visiting of the real estate de: Energieausweistyp\n"
                      },
                      "certificateBasedOn": {
                        "type": "string",
                        "enum": [
                          "NEED",
                          "CONSUMPTION"
                        ],
                        "description": "en: certificate is based on demand (de Bedarf) or consumption (de Verbrauch) de: \"Energieausweisart\", basiert der Energieausweis auf dem Bedarf (\"NEED\") oder Verbrauch (\"CONSUMPTION\")\n"
                      },
                      "isResidentialBuilding": {
                        "type": "boolean",
                        "description": "en: building is for residential use only, meaning space for commercial use below 10% de: Wohngebäude, bei Nicht-Wohngebäude ist dieser Wert false zu setzen"
                      },
                      "primaryEnergySource": {
                        "type": "string",
                        "enum": [
                          "NO_INFORMATION",
                          "SOLAR",
                          "WIND",
                          "COAL",
                          "GAS",
                          "OIL",
                          "WOOD",
                          "DISTRICT_HEATING",
                          "ELECTRICITY"
                        ],
                        "description": "en: primary energy carrier according to the certificate de: \"Wesentliche Energieträger\" laut Energieausweis\n"
                      },
                      "efficiencyClass": {
                        "type": "string",
                        "enum": [
                          "A_PLUS",
                          "A",
                          "B",
                          "C",
                          "D",
                          "E",
                          "F",
                          "G",
                          "H"
                        ],
                        "description": "en: Energy Efficiency Classification according to ENEV de: \"Energieeffizienzklasse\" laut Energieausweis\n"
                      },
                      "releaseDate": {
                        "type": "string",
                        "format": "date",
                        "description": "en: release date of the certificate. The date is an ISO 8601 formatted string de: Ausstellungsdatum"
                      },
                      "validUntil": {
                        "type": "string",
                        "format": "date",
                        "description": "en: certificate valid until date. The date is an ISO 8601 formatted string de: gültig bis"
                      },
                      "yearOfConstructionBuilding": {
                        "type": "integer",
                        "description": "en: year of construction for the building de: \"Baujahr Gebäude\""
                      },
                      "yearOfConstructionHeating": {
                        "type": "integer",
                        "description": "en: year of construction or installation for the heating de: \"Baujahr Wärmeerzeuger\"\n"
                      },
                      "overallEnergyNeed": {
                        "type": "number",
                        "description": "en: estimated overall energy need in kWh per m² per year, applicable only for certificateBasedOn = NEED de: \"Endenergiebedarf\", ist der anhand der Bausubstanz und Wärmeinstallationen berechnete theoretische Gesamtenergiebedarf in kW/m²/a, relevant nur für Bedarfsausweis (certificateBasedOn = NEED)\n"
                      },
                      "primaryEnergyNeed": {
                        "type": "number",
                        "description": "primary energy need in kWh per m² per year,computed from overallEnergyNeed*(energy source coefficient), applicable only for certificateBasedOn = NEED de: \"Primärenergiebedarf\" in kW/m²/a, wird berechnet aus Endenergiebedarf*(Koeffizient für wesentlichen Energieträger) relevant nur für Bedarfsausweis (certificateBasedOn = NEED)\n"
                      },
                      "electricityNeed": {
                        "type": "number",
                        "description": "en: overall energy need for electricity in kWh per m² per year, applicable only for certificateBasedOn = NEED, ENEV2014 and non-residential buildings de: \"Endenergiebedarf Strom\"\n"
                      },
                      "heatingNeed": {
                        "type": "number",
                        "description": "en: overall energy need for heating in kWh per m² per year, applicable only for certificateBasedOn = NEED, ENEV2014 and non-residential buildings de: \"Endenergiebedarf Wärme\"\n"
                      },
                      "overallEnergyConsumption": {
                        "type": "number",
                        "description": "en: total energy consumption in kWh per m² per year based on the real consumption in the last years applicable only for certificateBasedOn = CONSUMPTION de: \"Endenergieverbrauch\" in kW/m²/a berechnet anhand des realen Verbrauchs in der letzten Jahre, relevant nur für Verbrauchsausweis (certificateBasedOn = CONSUMPTION)\n"
                      },
                      "primaryEnergyConsumption": {
                        "type": "number",
                        "description": "en: primary energy consumption in kWh per m² per year, computed from overallEnergyConsumption*(energy source coefficient), applicable only for certificateBasedOn = CONSUMPTION de: \"Primärenergieverbrauch\" in kW/m²/a, wird berechnet aus Endenergieverbrauch*(Koeffizient für wesentlichen Energieträger) relevant nur für Verbrauchsausweis (certificateBasedOn = CONSUMPTION)\n"
                      },
                      "isWaterHeatingIncluded": {
                        "type": "boolean",
                        "description": "en: heating of water is included in primaryEnergyConsumption, applicable only for certificateBasedOn = CONSUMPTION de: \"Warmwasser enthalten\" in Primärenergieverbrauch relevant nur für Verbrauchsausweis (certificateBasedOn = CONSUMPTION)\n"
                      },
                      "electricityConsumption": {
                        "type": "number",
                        "description": "en: primary energy consumption for electricity in kWh per m² per year, applicable only for certificateBasedOn = CONSUMPTION de: \"Endenergieverbrauch Strom\"\n"
                      },
                      "heatingConsumption": {
                        "type": "number",
                        "description": "en: primary energy consumption for heating in kWh per m² per year, applicable only for certificateBasedOn = CONSUMPTION de: \"Endenergieverbrauch Wärme\"\n"
                      },
                      "energyConsumptionIndicator": {
                        "type": "number",
                        "description": "en: energy consumption in kWh per m² per year based on the real consumption de: \"Energieverbrauchskennwert\"\n"
                      }
                    }
                  }
                },
                "houseEnergyStandardType": {
                  "type": "string",
                  "enum": [
                    "UNSPECIFIED",
                    "LOW_ENERGY_40",
                    "LOW_ENERGY_60",
                    "PASSIVE_HOUSE",
                    "ENERGY_EFFICIENT_40",
                    "ENERGY_EFFICIENT_55",
                    "ENERGY_EFFICIENT_70",
                    "LOW_ENERGY_HOUSE",
                    "NULL_ENERGY_HOUSE",
                    "PLUS_ENERGY_HOUSE"
                  ],
                  "description": "German Category for Houses and Energy Consumption"
                },
                "primaryEnergySource": {
                  "type": "string",
                  "description": "primaryEnergySource"
                }
              }
            }
          }
        }
      }
    },
    "estateSubType": {
      "description": "subtypes to specify the selected estateType in detail",
      "oneOf": [
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "house"
          ],
          "properties": {
            "house": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "APARTMENT_HOUSE",
                "BUNGALOW",
                "CASTLE",
                "MANOR_HOUSE",
                "CHALET",
                "FARMHOUSE",
                "FINCA",
                "GARDEN_HOUSE",
                "GITE",
                "LIVING_AND_COMMERCIAL",
                "MULTI_FAMILY_HOUSE",
                "MOUNTAIN_HUT",
                "RESIDENTIAL_COMPLEX",
                "RUSTICO",
                "SEMIDETACHED_HOUSE",
                "SINGLE_FAMILY_HOUSE",
                "SPECIAL_REAL_ESTATE",
                "TERRACE_HOUSE",
                "CORNER_TERRACE_HOUSE",
                "END_TERRACE_HOUSE",
                "MID_TERRACE_HOUSE",
                "TOWN_HOUSE",
                "VILLA"
              ],
              "description": "subtypes of a house to describe the selected estate type in detail. descriptions for the enums above: - APARTMENT_HOUSE: a building containing multiple apartments\n  with a common entrance and sometimes services\n- BUNGALOW: a house that usually has only one storey, sometimes\n  with an attic, with a flat or a low-pitched roof\n- CASTLE: a historical massive and imposing building\n  usually fortified, built by the nobility, royalty or\n  by military orders.\n- MANOR_HOUSE: magnificent country house, often dating from the late middle\n  ages, in which the landed gentry used to live.\n- CHALET: a wooden house with a sloping roof and widely\n  overhanging eaves, common in Switzerland and other Alpine\n  regions in Europe.\n- FARMHOUSE: a house attached to a farm, especially the main\n  house in which the farmer lives.\n- FINCA: spanish-style country house with a large garden in\n  rural environment\n- GARDEN_HOUSE: a small dwelling usually built of wood located\n  in the garden of a large property or in garden allotments\n- GITE: a furnished holiday home in France that is available\n  for rent, especially in a rural environment.\n- LIVING_AND_COMMERCIAL: a building that contains units for\n  living and for commercial, eg apartments, shops, offices\n- MOUNTAIN_HUT: a building located high in the mountains,\n  usually accessible only by foot. When they are managed, they\n  provide food and shelter to mountaineers\n- MULTI_FAMILY_HOUSE: a single building that is set up to\n  accommodate more than one family living separately.\n- RESIDENTIAL_COMPLEX: a set of buildings containing multiple apartments\n  often with common services, shared garden, pool, playground\n- RUSTICO: originally a cottage or farm building traditionally\n  built with granite, typical for Ticino in Switzerland\n- SEMIDETACHED_HOUSE: a house that is joined to another similar\n  house on one side by a shared wall\n- SINGLE_FAMILY_HOUSE: a freestanding house, with one dwelling\n  unit for a person, couple or a family, set alone on its own\n  parcel of land\n- SPECIAL_REAL_ESTATE: a special kind of property that can not\n  be listing by another subtype, eg like a church\n- TERRACE_HOUSE: row of similar houses joined together\n  by their side walls; row houses\n  de: Achtung! entspricht nicht einem Terrassenhaus im Deutschen!\n- CORNER_TERRACE_HOUSE: is located at the corner or staggered\n  in a row of terrace houses; one side wall is shared with\n  another terrace house\n- END_TERRACE_HOUSE: is located at the end of a row of terrace\n  houses, one side wall is shared with another terrace house\n- MID_TERRACE_HOUSE: is located in the middle of a row of\n  terrace houses, both side walls are shared with another\n  terrace house each.\n- TOWN_HOUSE: a tall, narrow house generally having three or\n  more floors, usually in a row of similar houses which are\n  connected together, sometimes even by a common sidewall.\n- VILLA: a prestigious house, that is very spacious and may\n  include luxurious amenities such as a pool, etc."
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "apartment"
          ],
          "properties": {
            "apartment": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "MULTI_STOREY",
                "FLATSHARING_ROOM",
                "LOFT",
                "PENTHOUSE",
                "STUDIO",
                "TERRACE",
                "UNFINISHED_ATTIC_SPACE"
              ],
              "description": "subtypes of an apartment to describe the selected estate type in detail. descriptions for the enums above: - MULTI_STOREY: apartment that spreads over two, three or more\n  floors connected by an inner staircase, offered as\n  one property. a maisonette;\n- FLATSHARING_ROOM: single room within a flat or a house in the\n  context of shared living\n- LOFT: an industrial, warehouse, or commercial space converted\n  to an apartment\n- PENTHOUSE: an apartment on the highest floor of a building,\n  that is usually equipped with high standard.\n  Equivalent to the Swiss Attica.\n- STUDIO: a small flat in which the normal rooms\n  (living room, bedroom and kitchen) are combined into a single room\n- TERRACE: an apartment with a terrace and often an\n  adjoining garden\n- UNFINISHED_ATTIC_SPACE: large attic floor that can be\n  developed into an apartment"
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "plot"
          ],
          "properties": {
            "plot": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "LIVING",
                "COMMERCIAL",
                "INDUSTRY",
                "AGRICULTURE_FORESTRY",
                "MIXED",
                "LEISURE_FACILITY",
                "COMMERCIAL_PARC",
                "SPECIAL_USE",
                "LAKESIDE_PROPERTY"
              ],
              "description": "subtypes of a plot to describe the selected estate type\nin detail.\ndescriptions for the enums above:\n- LIVING: only residential buildings may be built on that plot\n- COMMERCIAL: only for commercial use\n- INDUSTRY: only for industrial use\n- AGRICULTURE_FORESTRY: a plot intended for farming or forestry\n- MIXED: a plot for mixed usage\n- LEISURE_FACILITY: for leisure activities such as sports,\n  gardening, etc.\n- COMMERCIAL_PARC: a plot in a commercial park or a commercial\n  park itself\n- SPECIAL_USE: a plot for a separate or special use\n- LAKESIDE_PROPERTY: a plot that adjoins a lake or the sea"
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "office"
          ],
          "properties": {
            "office": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "SINGLE_OFFICE",
                "OFFICE_SPACE",
                "OFFICE_BUILDING",
                "OFFICE_CENTRE",
                "OFFICE_STORAGE_BUILDING",
                "MEDICAL",
                "MEDICAL_FLOOR",
                "MEDICAL_BUILDING",
                "LIVING_AND_COMMERCIAL_BUILDING",
                "ATELIER",
                "COWORKING",
                "OPEN_SPACE",
                "SHARED_OFFICE"
              ],
              "description": "subtypes of an office property to describe the selected\nestate type in detail.\ndescriptions for the enums above:\n- SINGLE_OFFICE: single office room\n- OFFICE_SPACE: an office for several workplaces, can consist\n  of several rooms\n- OFFICE_BUILDING: a building that contains different office\n  units\n- OFFICE_CENTRE: a larger building that contains different\n  office units, can also be made up of several buildings\n- OFFICE_STORAGE_BUILDING: combines an office building\n  and a warehouse\n- MEDICAL: medical practice sometimes already equipped with\n  medical apparatus\n- MEDICAL_FLOOR: more general a floor for a medical practice\n- MEDICAL_BUILDING: a building that contains different medical\n  units; medical centre\n- LIVING_AND_COMMERCIAL_BUILDING: a building that contains units\n  for living and for commercial, eg apartments, shops, offices\n- ATELIER: a workshop or studio, usually for artists or designer\n- COWORKING: an arrangement in which several workers from many\n  different companies share an office space; typically you do\n  not sit at the same desk every day and it is for short term\n- SHARED_OFFICE: an arrangement in which several companies\n  share an office space; typically you keep the same desk\n  and it is for long term\n- OPEN_SPACE: an open-plan office, without small rooms or\n  cubicles, usually has long rows of desks with little or\n  nothing dividing them."
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "trading"
          ],
          "properties": {
            "trading": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "STORE",
                "SHOWROOM_SPACE",
                "SHOPPING_CENTRE",
                "KIOSK",
                "SALES_AREA"
              ],
              "description": "subtypes of a trading related property to describe the\nselected estate type in detail.\ndescriptions for the enums above:\n- STORE: shop or store for retail\n- SHOWROOM_SPACE: a room where merchandise is exhibited for\n  sale or where samples are displayed\n- SHOPPING_CENTRE: a building that contains several stores\n- KIOSK: a small building from which people can buy things such\n  as sandwiches or newspapers usually through an open window or\n  with a very small sellspace\n- SALES_AREA: a sellspace within another store"
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "gastronomyHotel"
          ],
          "properties": {
            "gastronomyHotel": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "CAFE_BAR_PUB",
                "RESTAURANT",
                "CLUB_DISCOTHEQUE",
                "HOTEL",
                "APART_HOTEL",
                "LEISURE"
              ],
              "description": "subtypes of a gastronomy and hotel related property to describe the selected estate type in detail. descriptions for the enums above: - CAFE_BAR_PUB: a property for a cafe, a bar, a pub or\n  something similar\n- RESTAURANT: a property for a restaurant - CLUB_DISCOTHEQUE: a property for club or a discotheque - HOTEL: a property for a hotel - APART_HOTEL: like a hotel, but instead of small rooms there\n  are apartments or studios\n- LEISURE: a property for leisure or entertainment with gastronomy"
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "storageProduction"
          ],
          "properties": {
            "storageProduction": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "WAREHOUSE_HALL",
                "LOGISTICS_CENTER",
                "PRODUCTION_HALL",
                "GARAGE_REPAIR",
                "OUTDOOR_SPACE",
                "MISC_STORAGE"
              ],
              "description": "subtypes of a storage and production related property to\ndescribe the selected estate type in detail.\ndescriptions for the enums above:\n- WAREHOUSE_HALL: a hall for industry and storage\n- LOGISTICS_CENTER: a center for logistics and distribution\n- PRODUCTION_HALL: an industrial hall where something is\n  produced\n- GARAGE_REPAIR: a repair shop or workshop\n- OUTDOOR_SPACE: an open space without a building or adjoining\n  to a building\n- MISC_STORAGE: a storage property that cannot be dedicated to\n  one of the other subTypes"
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "agricultureForestry"
          ],
          "properties": {
            "agricultureForestry": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "FARM_RANCH",
                "AGRICULTURE_COMPANY",
                "GARDENING",
                "FORESTRY",
                "WINERY",
                "HUNTING",
                "FISHING",
                "RIDING",
                "MISC_AGRICULTURE",
                "ORCHARD"
              ],
              "description": "subtypes of a agriculture and forest related property to describe the selected estate type in detail. descriptions for the enums above: - FARM_RANCH: land area with usually different buildings for\n  farming and livestock\n- AGRICULTURE_COMPANY: farm that runs agriculture as business - GARDENING: place where plants are tended and cultivated for\n  trading or selling\n- FORESTRY: management of forests, with planting, lumbering\n  and caring for the wood\n- WINERY: an establishment where wine is grown and made - HUNTING: a ground for hunting - FISHING: fishery and aquaculture - RIDING: riding stables; also includes a farm where horses are bred - MISC_AGRICULTURE: other properties regarding agriculture - ORCHARD: farm or plantation for fruits"
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "parking"
          ],
          "properties": {
            "parking": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "OUTSIDE",
                "STREET_PARKING",
                "CARPORT",
                "GARAGE",
                "DOUBLE_GARAGE",
                "DUPLEX",
                "GARAGE_AREA",
                "PARKING_AREA",
                "CAR_PARK",
                "UNDERGROUND_GARAGE",
                "UNDERGROUND_PARKING_SPACE",
                "BOAT_DOCK",
                "MIXED"
              ],
              "description": "subtypes of a parking property to describe the selected\nestate type in detail.\ndescriptions for the enums above:\n- OUTSIDE: a parking space that is outside not in a garage\n- STREET_PARKING: a parking space along the street\n- CARPORT: a shelter for vehicles that is open-sided and\n  usually attached to a house\n- GARAGE: a building for parking one vehicle usually with a\n  vertical rolling door\n- DOUBLE_GARAGE: like a garage but for two vehicles\n- DUPLEX: double parking on one parking space with a\n  parking lift\n- GARAGE_AREA: an area with several garages only,\n  no houses attached\n- PARKING_AREA: a confined area full of parking spaces\n- CAR_PARK: a multistorey building for parking vehicles\n- UNDERGROUND_GARAGE: a car park that is mainly below earth\n- UNDERGROUND_PARKING_SPACE: a single parking space in an\n  underground garage\n- BOAT_DOCK: parking for a boat, a berth\n- MIXED: a combination of different parking types"
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "senior"
          ],
          "properties": {
            "senior": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "LIVING",
                "ASSISTED_LIVING",
                "MEDICAL_CARE"
              ],
              "description": "subtypes for senior-oriented apartments to describe the selected\nestate type in detail.\ndescriptions for the enums above:\n- LIVING: apartment in a senior-oriented environment (without\n  assistance, care and nursing)\n- ASSISTED_LIVING: apartment in a senior-oriented environment\n  with assistance. Optional services and personal care are\n  provided in a home-like, social setting, whereby the focus\n  is on the independence of the residents.\n- MEDICAL_CARE: apartment in a senior-oriented clinical setting,\n  nursing homes provide medical and personal care for people\n  in great need of care."
            }
          }
        },
        {
          "type": "object",
          "additionalProperties": false,
          "nullable": false,
          "required": [
            "project"
          ],
          "properties": {
            "project": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50,
              "nullable": false,
              "enum": [
                "MULTI_FAMILY_HOUSE",
                "HOUSE_PARK",
                "SINGLE_MULTI_HOUSES",
                "MISCELLANEOUS"
              ],
              "description": "subtypes of a real estate project. descriptions for the enums above: - MULTI_FAMILY_HOUSE: is a project for a multi family house,\n  that is built as one building/project, but the individual\n  residential units in the multi family house will be sold separately.\n- HOUSE_PARK: a collection of different house types - SINGLE_MULTI_HOUSES: a project for several single family houses that are\n  built together as one project, but the individual houses will\n  be sold separately.\n- MISCELLANEOUS: any other kind of project"
            }
          }
        }
      ]
    },
    "estateType": {
      "type": "string",
      "nullable": false,
      "minLength": 1,
      "maxLength": 50,
      "enum": [
        "HOUSE",
        "APARTMENT",
        "PLOT",
        "OFFICE",
        "TRADING",
        "GASTRONOMY_HOTEL",
        "STORAGE_PRODUCTION",
        "AGRICULTURE_FORESTRY",
        "PARKING",
        "SENIOR",
        "PROJECT",
        "MISCELLANEOUS"
      ],
      "description": "the general type of the property.\nchanging this value is NOT permitted during an update transaction.\nto classify it in detail, please use the subtypes.\ndescriptions for the enums above:\n- HOUSE: a building where people live in\n- APARTMENT: a set of rooms for living in within a building; a flat\n- PLOT: a piece of land\n- OFFICE: a room, set of rooms, or building where the business of a\n  commercial or industrial organization or of a professional\n  person is conducted. also medical offices are included here.\n- TRADING: all kind of properties concerning trading, retail\n  and whole sale\n- GASTRONOMY_HOTEL: all kind of properties concerning the hotel\n  and catering industry\n- STORAGE_PRODUCTION: an industrial or production site, warehouse,\n  storage unit or building\n- AGRICULTURE_FORESTRY: all kind of properties concerning\n  agriculture and forestry in the broadest sense\n- PARKING: all parking relevant properties for any kind of vehicles\n- SENIOR: senior-oriented living properties\n- PROJECT: usually a project is made up of more single properties,\n  like a multi family house and often it is not finished yet but\n  planned or under construction\n- MISCELLANEOUS: every other kind of property that can not be\n  classified into the other estateTypes"
    },
    "features": {
      "type": "object",
      "description": "Feature information for the property",
      "additionalProperties": false,
      "properties": {
        "accessibleFromStreet": {
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "can the property be accessed directly from street."
        },
        "aircondition": {
          "type": "string",
          "enum": [
            "YES",
            "PART",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "aircondition available"
        },
        "entranceHall": {
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "has the property an entrance hall or has it a direct access to the rooms ?"
        },
        "floorCovering": {
          "description": "General floor covering",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "tiles": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "stone": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "carpet": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "parquet": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "laminate": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "synthetic": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "screed": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "linoleum": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "marble": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "terracotta": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "granite": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "raisedFloor": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "provides an elevated structural floor above a solid substrate to create a hidden void for the passage of mechanical and electrical services."
            },
            "quartz": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "concrete": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "antiDustConcrete": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "woodenPlank": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "antiStatic": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "vinyl": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            }
          }
        },
        "furnished": {
          "type": "string",
          "enum": [
            "PART",
            "FULL",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "is the property equipped, is furniture in there?"
        },
        "garden": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "part": {
              "type": "boolean"
            },
            "private": {
              "type": "boolean"
            },
            "shared": {
              "type": "boolean"
            }
          },
          "description": "info about a garden belonging to the property"
        },
        "gym": {
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "presence of a gym in the building"
        },
        "internet": {
          "type": "object",
          "properties": {
            "internetSpeedMbit": {
              "description": "available internet speed in Mbit/s",
              "type": "integer",
              "minimum": 0
            },
            "internetAvailability": {
              "type": "object",
              "description": "physical connections of the building to the internet network",
              "properties": {
                "opticalFiber": {
                  "type": "boolean",
                  "description": "Fiber to the x (FTTX; also spelled \"fibre\") is a generic term for any broadband network architecture using optical fiber"
                },
                "dsl": {
                  "type": "boolean",
                  "description": "Digital subscriber line (DSL or xDSL) is a family of technologies that are used to transmit digital data over telephone lines"
                },
                "cable": {
                  "type": "boolean",
                  "description": "Cable modem is a type of network bridge that provides bi-directional data communication"
                },
                "satellite": {
                  "type": "boolean",
                  "description": "Satellite Internet access is provided through communication satellites"
                }
              }
            },
            "propertyInternetAccess": {
              "type": "object",
              "description": "type(s) of internet connection currently used in the property",
              "properties": {
                "ethernet": {
                  "type": "boolean"
                },
                "wireless": {
                  "type": "boolean"
                }
              }
            }
          }
        },
        "lighting": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "ceiling": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "lights at the ceiling"
            },
            "led": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "LED is used as light source"
            },
            "window": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "natural light through the presence of windows"
            }
          }
        },
        "mezzanine": {
          "description": "an intermediate floor between levels of a building, used for increasing the floor area. can be used for countless applications like living, storage, work operations, etc",
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_APPLICABLE"
          ]
        },
        "propertyOrientation": {
          "description": "Main geographical orientation of the property. e.g. orientation of the living room for residential properties",
          "allOf": [
            {
              "$ref": "#/$defs/orientation"
            }
          ]
        },
        "receptionist": {
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "presence of a receptionist in the building"
        },
        "security": {
          "description": "already available security features",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "buildingIntercom": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE",
                "VIDEO",
                "DOOR_PHONE"
              ],
              "description": "allows residents to talk to visitors (and possibly see them on video) before granting them access to the building."
            },
            "cam": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "camera surveillance is available"
            },
            "custodian": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of a security service in the building"
            },
            "custodianRoom": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "room for the security personnel is available in the building"
            },
            "digitalLock": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "digital or electronic locks do not require the use of physical key for access, they work by the use of e.g. RFIDs (badges, keyCards), PinCodes, fingerprints"
            },
            "emergencyCall": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "in the event of an alarm, police or security will be called"
            },
            "fireSprinkler": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of a fire sprinkler system"
            },
            "fireAlarm": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of a fire alarm system"
            },
            "intruderAlarm": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of an intruder alarm system"
            },
            "reinforcedDoor": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "high security entrance door"
            },
            "safe": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "built-in safe is available in the property"
            }
          }
        },
        "wheelchairUse": {
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "a building is ready for wheelchair use, when it is barrierFree and the doors/passages are at least 90 cm wide"
        },
        "wineCellar": {
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "building has a wine cellar"
        },
        "residential": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "assistedLiving": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "assisted living is offered"
            },
            "chimney": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of a chimney, indoor fireplace"
            },
            "flatSharePossible": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "use as shared living (app., house) is possible"
            },
            "hammam": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "hammam present, room full of steam, humid interior, generally tiled walls"
            },
            "houseCleaningService": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "Is there a house cleaning service provided"
            },
            "jacuzzi": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of a jacuzzi, hot tub"
            },
            "loggia": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "an outdoor room or gallery without windows, that is part of a house. In contrast to balcony, the loggia is surrounded by house walls on 2-3 sides."
            },
            "sauna": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "sauna present, room full of steam"
            },
            "swimmingPool": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "INSIDE",
                "OUTSIDE",
                "INSIDE_AND_OUTSIDE",
                "NOT_APPLICABLE"
              ],
              "description": "info about a swimmingPool belonging to the property"
            },
            "tennisField": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE",
                "PRIVATE",
                "SHARED"
              ],
              "description": "info about a tennisField belonging to the property"
            },
            "tv": {
              "type": "string",
              "enum": [
                "SAT",
                "CABLE",
                "OTHER"
              ],
              "description": "What TV connection does the property have?"
            },
            "veranda": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "house has a veranda/ wintergarden"
            },
            "laundryRoom": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "wash or dryroom present"
            },
            "countrySpecific": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "fr": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "evacuation": {
                      "type": "string",
                      "enum": [
                        "ALL_SEWER",
                        "SEPTIC_TANK"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "commercial": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "accessibleByTrucks": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE",
                "SEPARATED_TRUCK_ACCESS"
              ],
              "description": "The building has a ramp for a truck. This ramp may be separated from the access for regular cars."
            },
            "auditorium": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of an auditorium room"
            },
            "bar": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of a bar primarily for gastronomy and hotel"
            },
            "buildingVentilation": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "building has an aeration and ventilation system, that removes the used and \"dirty\" indoor air and replaces it with new, fresh, and oxygen-rich air."
            },
            "cafeteria": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "cafeteria available"
            },
            "coldStore": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "property has a cold storage room"
            },
            "companyRestaurant": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "company restaurant available"
            },
            "droppedCeiling": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "A dropped ceiling is a secondary ceiling, hung below the main (structural) ceiling. It may also be referred to as a drop ceiling, T-bar ceiling, false ceiling, suspended ceiling, grid ceiling, drop in ceiling, drop out ceiling, or ceiling tiles"
            },
            "engineGenerator": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "An engine-generator or portable generator is the combination of an electrical generator and an engine (prime mover) mounted together to form a single piece of equipment."
            },
            "exhaustHood": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "flexibleRoomLayout": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "division of the rooms can be changed, by changing the usage or by removing walls"
            },
            "heatedTerrace": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "terrace can be heated"
            },
            "liftingPlatform": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of a machinery used for lifting and loading people (e.g.wheelchairs) or goods (cars) in a vertical form."
            },
            "numberOfStorageCells": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "Number of storage cells in a warehouse"
            },
            "overheadCrane": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of an overhead crane"
            },
            "restaurantSeats": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "Number of restaurant seats inside"
            },
            "restaurantSeatsOutside": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "Number of restaurant seats outside"
            },
            "teaKitchen": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "building has a tea-kitchen"
            },
            "truckManeuveringArea": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "presence of an area for maneuvering of trucks"
            },
            "verticalSlidingDoor": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "wallSiding": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE",
                "DOUBLE",
                "DECORATIVE"
              ]
            },
            "countrySpecific": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "fr": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "licenseType": {
                      "type": "string",
                      "enum": [
                        "PETITE_LICENCE_RESTAURANT",
                        "LICENCE_RESTAURANT",
                        "LICENCE_III",
                        "LICENCE_IV"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "parking": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "chargingStation": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "charging station for electric cars"
            },
            "bikeParking": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            }
          }
        },
        "plot": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "usageFor": {
              "type": "object",
              "description": "what the plot can be used for",
              "additionalProperties": false,
              "properties": {
                "futureDevelopmentLand": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "twinhouse": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "singleFamilyHouse": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "terraceHouse": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "apartmentBuilding": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "orchard": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "farmland": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "parkingSpace": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "garage": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "noDevelopment": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                }
              }
            },
            "developmentInfrastructure": {
              "type": "object",
              "description": "Basic Infrastructure on site",
              "additionalProperties": false,
              "properties": {
                "districtHeating": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "electric": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "gas": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "telco": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "water": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                }
              }
            },
            "shortTermConstructible": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "plot is shortTerm constructible"
            },
            "brownfield": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "plot is brownfield. That is a site or industrial wasteland whose expansion, redevelopment or reuse may be complicated (presence of a hazardous substance?) Plot may be built on"
            },
            "buildingPermission": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "permission to build"
            },
            "demolitionSuggested": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "demolition is suggested - when there is an old building on the plot"
            },
            "fencedPlot": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "isTerracedArea": {
              "type": "boolean",
              "description": "The plot is a terraced areas set, such as mediterranean Restanques or other common typical areas."
            },
            "tilt": {
              "type": "string",
              "enum": [
                "NONE",
                "MINOR",
                "SIGNIFICANT",
                "STEEP"
              ],
              "description": "plot tilt or inclination measured as distance covered vertically divided by horizontally => measurement in % such as: - NONE means no extra earthwork is needed for new construction - MINOR if less than 6% - SIGNIFICANT if less than 12% - STEEP if more than 12% **Note:** that terraced areas should take terraces tilt into account\n"
            },
            "countrySpecific": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "de": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "buildingRules": {
                      "type": "string",
                      "enum": [
                        "NEIGHBORHOOD_34",
                        "EXTERNALAREA_35",
                        "B_PLAN",
                        "NO_BUILDINGAREA",
                        "DEVELOPMENTAREA",
                        "BUILDINGAREA_WITHOUT_PLAN",
                        "COUNTRYSPECIFIC"
                      ],
                      "description": "German Government Rules for Building Standards"
                    },
                    "siteDevelopmentState": {
                      "type": "string",
                      "enum": [
                        "UNDEVELOPED",
                        "PARTLY_DEVELOPED",
                        "FULLY_DEVELOPED",
                        "NO_INFORMATION"
                      ],
                      "description": "German Government Rules for Development;"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "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"
            }
          ]
        }
      }
    },
    "management": {
      "type": "object",
      "description": "General management information, like if pets are allowed or the max rental time",
      "additionalProperties": false,
      "properties": {
        "isImmediatelyAvailable": {
          "type": "boolean",
          "description": "is ready for immediate use"
        },
        "availableFrom": {
          "type": "string",
          "format": "date",
          "description": "available for use from this date; the date is an ISO 8601 formatted string. DEPRECATED for projects (use buildingProperty.program.deliveryDate instead)"
        },
        "availableUntil": {
          "type": "string",
          "format": "date",
          "description": "only available for use until this date; the date is an ISO 8601 formatted string"
        },
        "isForInvestment": {
          "type": "boolean",
          "description": "suitable as investment"
        },
        "heritageProtected": {
          "type": "string",
          "enum": [
            "YES",
            "NO",
            "NOT_APPLICABLE"
          ],
          "description": "is the property under a preservation order"
        },
        "marketStatus": {
          "type": "string",
          "enum": [
            "SOLD",
            "RENTED",
            "REFERENCE",
            "RESERVED",
            "UNDER_OFFER"
          ],
          "description": "marketing status of the property, is it currently sold, rented, under offer, etc. Options cannot be combined! fr: `UNDER_OFFER` si le bien est sous compromis\n"
        },
        "projectStatus": {
          "type": "string",
          "enum": [
            "BUILDING_PERMISSION",
            "COMMERCIAL_LAUNCH",
            "CONSTRUCTION_START",
            "UNDER_CONSTRUCTION",
            "SHELL_WORKS",
            "FINISHING_WORKS",
            "LAST_CHANCE",
            "PROJECT_ENDED"
          ],
          "description": "Status of a project property indicating the construction or sales phase"
        },
        "marketLabel": {
          "type": "string",
          "maxLength": 512,
          "description": "additional to marketStatus; can be use eg on the realtor's website."
        },
        "isRented": {
          "type": "boolean",
          "description": "is the purchasing property currently rented; de: ist das Kaufobjekt aktuell vermietet; fr: Indique si murs occupés ou murs libres pour un fonds de commerce"
        },
        "useFor": {
          "type": "string",
          "enum": [
            "LIVING",
            "COMMERCIAL",
            "MIXED",
            "OFFICE",
            "INDUSTRIAL"
          ],
          "description": "Info on the usage of the property"
        },
        "isForHolidayRental": {
          "type": "boolean",
          "description": "can be rented as holiday property to other people"
        },
        "rent": {
          "type": "object",
          "description": "management info on rental properties",
          "additionalProperties": false,
          "properties": {
            "favouredGender": {
              "type": "string",
              "enum": [
                "MALE",
                "FEMALE",
                "OTHER"
              ],
              "description": "favoured gender"
            },
            "minRentalTime": {
              "type": "integer",
              "description": "minimum of the tenancy; see rentalTimeUnit for the unit; can also be used for lease (duration of the lease)"
            },
            "maxRentalTime": {
              "type": "integer",
              "description": "maximum of the tenancy; see rentalTimeUnit for the unit;"
            },
            "rentalTimeUnit": {
              "type": "string",
              "enum": [
                "DAY",
                "WEEK",
                "MONTH",
                "YEAR"
              ],
              "description": "unit of the tenancy or the lease duration"
            },
            "certificateOfEligibilityNeeded": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "a special certificate is needed to rent the apartment due to social or other regulation"
            },
            "maxPersons": {
              "type": "integer",
              "description": "max. nr of persons;"
            },
            "nonSmoker": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "Not allowed to smoke"
            },
            "petsAllowed": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "pets allowed"
            },
            "isShortTimeRental": {
              "type": "boolean",
              "description": "often associated with furnished accommodation (rooms, flats or houses) which are available for a limited period of time. its mainly used by students, young professionals, consultants and commuters who live in a city for a certain period of time (often project-, job- or study-related). short term living must not be confused with holiday flats!"
            }
          }
        },
        "compulsoryAuction": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "auctionLocation": {
              "type": "string",
              "maxLength": 512,
              "description": "Place where the auction is held, usually the court."
            },
            "auctionSpace": {
              "type": "string",
              "maxLength": 64,
              "description": "room number in court where the auction is held"
            },
            "cancellationDate": {
              "type": "string",
              "format": "date",
              "description": "Date when a auction is stopped. The date is an ISO 8601 formatted string. de:aufhebungsTermin"
            },
            "coOwnership": {
              "type": "string",
              "maxLength": 512,
              "description": "second owner"
            },
            "countyCourt": {
              "type": "string",
              "maxLength": 512,
              "description": "court city name of the auction de: Amtsgericht"
            },
            "dateOfAuction": {
              "type": "string",
              "format": "date",
              "description": "Date and time of the compulsory auction. The date is an ISO 8601 formatted string"
            },
            "isDiscretionarySale": {
              "type": "boolean",
              "description": "Sale opportunity before the official auction de: Freihandverkauf"
            },
            "distributionPlanNumber": {
              "maxLength": 64,
              "type": "string",
              "description": "Management number of a unit in a building de: Aufteilungsnummer"
            },
            "fileReferenceAtCountyCourt": {
              "type": "string",
              "maxLength": 512,
              "description": "reference number of the county court de:amtsgerichtKennung"
            },
            "lastChangeDate": {
              "type": "string",
              "format": "date",
              "description": "Date when the last change was made to the information of the auction. The date is an ISO 8601 formatted string."
            },
            "insolvencyAdministrator": {
              "type": "string",
              "maxLength": 512,
              "description": "insolvency administrator de:  Zwangsverwalter/Insolvenzverwalter"
            },
            "owner": {
              "type": "string",
              "maxLength": 512,
              "description": "the owner of the property"
            },
            "recordationDate": {
              "type": "string",
              "format": "date",
              "description": "when the property was registered as compulsory auction. The date is an ISO 8601 formatted string. de: Aufnahmedatum"
            },
            "additionalDate": {
              "type": "string",
              "format": "date",
              "description": "Additional date for the auction. The date is an ISO 8601 formatted string. de: Zusatztermin"
            },
            "isWithoutValueLimits": {
              "type": "boolean",
              "description": "if true, it means: free bidding at second auction date, there are\nno value limits anymore according to the market value. de: Wertgrenzen weggefallen\n"
            },
            "isSplittingAuction": {
              "type": "boolean",
              "description": "auction mode if property is owned by more than one person de: Teilungsversteigerung"
            }
          }
        }
      }
    },
    "mediaRequest": {
      "type": "array",
      "items": {
        "type": "object",
        "nullable": false,
        "additionalProperties": false,
        "required": [
          "externalMediaId"
        ],
        "properties": {
          "externalMediaId": {
            "type": "string",
            "nullable": false,
            "minLength": 1,
            "description": "The External media ID"
          },
          "title": {
            "type": "string",
            "nullable": false,
            "description": "A descriptive title for the media item. If not provided, a default value will be generated using the filename and media ID."
          }
        }
      },
      "description": "Array of media items to attach to the listing."
    },
    "metadata": {
      "type": "object",
      "description": "metadatas associated to listing in the 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"
            },
            "offererEstateGroupId": {
              "type": "string",
              "description": "identifier for clustering different real estates into a defined group by the offerer (e.g. real estate agent)"
            }
          }
        },
        "portalWebKey": {
          "description": "short id of the real estate classified on a public website. generated by the portal/receiver.",
          "type": "string"
        }
      }
    },
    "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"
        }
      }
    },
    "orientation": {
      "type": "string",
      "description": "cardinal and ordinal geographical directions",
      "enum": [
        "NORTH",
        "EAST",
        "SOUTH",
        "WEST",
        "NORTH_EAST",
        "SOUTH_EAST",
        "SOUTH_WEST",
        "NORTH_WEST"
      ]
    },
    "parkingStyle": {
      "type": "object",
      "properties": {
        "parkingStyle": {
          "type": "string",
          "enum": [
            "OUTSIDE",
            "STREET_PARKING",
            "CARPORT",
            "GARAGE",
            "DOUBLE_GARAGE",
            "DUPLEX",
            "GARAGE_AREA",
            "PARKING_AREA",
            "CAR_PARK",
            "UNDERGROUND",
            "BOAT_DOCK"
          ],
          "description": "if the property has an additional garage/parking space then\nyou can specify the parking style in details here.\nA parking lot can only be described by one (the most appropriate)\nitem, not by several.\nDescriptions for the enums above:\n- OUTSIDE: a parking space that is outside, not in a garage\n- STREET_PARKING: a parking space along the street\n- CARPORT: a shelter for vehicles that is open-sided\n  and usually attached to a house\n- GARAGE: a building for parking one vehicle usually\n  with a vertical rolling door\n- DOUBLE_GARAGE: like a garage but for two vehicles\n- DUPLEX: double parking on one parking space with a\n  parking lift\n- GARAGE_AREA: a single garage in an area with\n  several garages only, no houses attached\n- PARKING_AREA: a single parking lot in a confined\n  area full of parking spaces\n- CAR_PARK: a single parking space in an usually\n  multistorey car park building\n- UNDERGROUND: a single parking space in an\n  underground garage (car park mainly below earth)\n- BOAT_DOCK: parking for a boat (a berth)"
        }
      }
    },
    "priceCommon": {
      "type": "object",
      "description": "common fields for all prices",
      "additionalProperties": false,
      "properties": {
        "amount": {
          "type": "number",
          "minimum": 0,
          "maximum": 9999999999999,
          "exclusiveMaximum": true,
          "description": "amount of the select priceType"
        },
        "vatValue": {
          "type": "number",
          "minimum": 0,
          "maximum": 9999999999999,
          "exclusiveMaximum": true,
          "description": "the vat value in currency"
        },
        "vatPercent": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "the vat value in percent"
        },
        "isVatIncluded": {
          "type": "boolean",
          "description": "vat is included in the price"
        }
      }
    },
    "priceInformation": {
      "type": "object",
      "properties": {
        "priceInformation": {
          "type": "string",
          "enum": [
            "PRICE_ON_DEMAND",
            "BASIS_FOR_NEGOTIATION"
          ],
          "description": "- PRICE_ON_DEMAND: specific flag for displaying this price on the\n  portal/website. If PRICE_ON_DEMAND is chosen, the price MUST NOT\n  be shown! It may only be used as search price!\n- BASIS_FOR_NEGOTIATION: the price is not fixed, it is negotiable.\n  If the price is FIXED, priceInformation has to be empty / NULL."
        }
      }
    },
    "prices": {
      "type": "object",
      "description": "contains different prices and price types for a property",
      "additionalProperties": false,
      "properties": {
        "currency": {
          "$ref": "#/$defs/currency"
        },
        "buy": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "price": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ],
              "description": "the purchase price of the property"
            },
            "isLeaseBuyCombi": {
              "type": "boolean",
              "description": "the property can also be purchased as rental purchase"
            },
            "leasehold": {
              "type": "object",
              "description": "A building or plot is sold to a cheaper price, but the buyer will not be the owner, but the leaseholder. If a property is leasehold, it is allowed to be used in return for payment (leasehold rent) according to the terms of a lease. de: Erbpacht/Erbbaurecht",
              "required": [
                "amount",
                "priceTimeUnit"
              ],
              "additionalProperties": false,
              "properties": {
                "isLeasehold": {
                  "type": "boolean",
                  "description": "If the property is sold with leasehold rights. For an exact representation, please also fill in the following fields."
                },
                "amount": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 9999999999999,
                  "description": "amount of the leasehold rent"
                },
                "priceTimeUnit": {
                  "type": "string",
                  "description": "when does the leaseholdRent have to be paid, per month or per year",
                  "enum": [
                    "MONTH",
                    "YEAR"
                  ]
                },
                "duration": {
                  "type": "number",
                  "minimum": 1,
                  "description": "the leasehold duration in years. Usually a leasehold is 50-99 years. After that time, the leasehold often can be extended."
                },
                "endDate": {
                  "type": "string",
                  "format": "date",
                  "description": "date when the leasehold ends."
                }
              }
            },
            "operatingCosts": {
              "type": "object",
              "description": "includes general maintenance costs, security, cleaning, administration, insurances, etc. for the building. de: Hausgeld",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                },
                {
                  "$ref": "#/$defs/accounting"
                }
              ],
              "additionalProperties": false,
              "properties": {
                "priceTimeUnit": {
                  "type": "string",
                  "description": "time unit for the price",
                  "enum": [
                    "DAY",
                    "WEEK",
                    "MONTH",
                    "YEAR"
                  ]
                }
              }
            },
            "rentalIncome": {
              "type": "object",
              "description": "the real rental income of the latest period",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ],
              "additionalProperties": false,
              "properties": {
                "priceTimeUnit": {
                  "type": "string",
                  "description": "rental income period",
                  "enum": [
                    "MONTH",
                    "YEAR"
                  ]
                }
              }
            },
            "rentalIncomeExpect": {
              "type": "object",
              "description": "expected rental income in future periods",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ],
              "additionalProperties": false,
              "properties": {
                "priceTimeUnit": {
                  "type": "string",
                  "description": "rental income period",
                  "enum": [
                    "MONTH",
                    "YEAR"
                  ]
                }
              }
            },
            "isParkingPriceIncluded": {
              "type": "boolean",
              "description": "is the parking space (if available) included in the buy"
            },
            "parkingPrice": {
              "type": "object",
              "description": "prices for parking spaces",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                },
                {
                  "$ref": "#/$defs/parkingStyle"
                }
              ],
              "properties": {
                "isOperatingCostsIncluded": {
                  "type": "boolean"
                }
              }
            },
            "pricePerSqUnit": {
              "type": "object",
              "description": "Price per space measure unit (square meter, square foot, hectar, ...) which is defined at `spaces.spaceMeasureUnit`. If `spaces.spaceMeasureUnit` is empty, `SQUARE_METER` is used as default.",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ]
            },
            "yieldFactor": {
              "type": "number",
              "minimum": 0,
              "maximum": 9999999999999,
              "description": "for the calculation of the return. calculation: purchase price divided by annual rental income"
            },
            "countrySpecific": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "fr": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "isReducedNotaryFees": {
                      "type": "boolean",
                      "description": "Reduced notary fees ?"
                    },
                    "notaryFeesFor": {
                      "type": "string",
                      "enum": [
                        "BUYER",
                        "SELLER",
                        "SHARED"
                      ]
                    },
                    "lifeAnnuity": {
                      "description": "If it is a life annuity sell (Viager), the monthly amount to pay",
                      "allOf": [
                        {
                          "$ref": "#/$defs/priceCommon"
                        },
                        {
                          "$ref": "#/$defs/priceInformation"
                        }
                      ]
                    }
                  }
                },
                "at": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "operatingCostsNet": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "operating costs excl. vat (as in the operating costs catalog); de: BetriebskostenNetto exkl. Ust (lt.BK-Katalog)"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    },
                    "heatingCostsNet": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "heatingCosts excl. vat (if 0, no heatingCosts are included in totalRent) de: HeizkostenNetto; Heizkosten exkl. USt (wenn 0, dann keine HK in Warmmiete enthalten)"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    },
                    "miscCostsNet": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "overallLoadGross minus rentNet, operatingCostsNet, heatingCostsNet, overallLoadVat; de: SonstigeKostenNetto; MonatlichKostenBrutto abzgl, BetriebskostenNetto, HeizkostenNetto und MonatlicheKostenUst"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    },
                    "vatCostsPerMonth": {
                      "type": "number",
                      "description": "sum of the monthly vat costs de: MonatlicheKostenUSt; summe der monatlichen MwSt Kosten"
                    },
                    "costsPerMonthGross": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "sum of the monthly costs gross (incl. vat, additionalCosts, heatingCosts, other costs) de: MonatlicheKostenBrutto; Summe monatlicher Kosten (inkl.Ust, BK, HK, Sonstige)"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "rent": {
          "description": "rent price information",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "baseRent": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ],
              "description": "base rent without any operating costs, water, power, etc."
            },
            "baseRentPerYear": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ],
              "description": "reports yearly discounted base rent without any operating costs, water, power, etc. To use only if you have already provided a yearly non-negotiated amount in `price.rent.baseRent` (i.e. with `prices.rent.priceTimeUnit = YEAR`)."
            },
            "totalRent": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ],
              "description": "includes base rent and operating costs"
            },
            "lease": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ],
              "description": "lease is very similar to rent but not the same. As a tenant of lease you have more rights: you may not only use the property, but you may also generate a profit out of it. typical examples: when you lease agriculture ground or a gastronomy property."
            },
            "operatingCosts": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                },
                {
                  "$ref": "#/$defs/accounting"
                }
              ],
              "description": "includes general maintenance costs, insurances, etc. for the building. And sometimes even water and heating costs, but this depends on the contract with the landlord."
            },
            "heatingCosts": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                },
                {
                  "$ref": "#/$defs/accounting"
                }
              ],
              "description": "costs for the heating"
            },
            "isHeatingIncludedInOC": {
              "type": "boolean",
              "description": "are the costs for heating already included in the operating costs?"
            },
            "isHeatingIncludedInTR": {
              "type": "boolean",
              "description": "are the costs for heating already included in the total rent?"
            },
            "pricePerSqUnit": {
              "description": "Price per space measure unit (square meter, square foot, hectar, ...) which is defined at `spaces.spaceMeasureUnit`. If `spaces.spaceMeasureUnit` is empty, `SQUARE_METER` is used as default. `prices.rent.pricePerSqUnit` is usually based on base rent.",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ]
            },
            "pricePerSqUnitPerYear": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ],
              "description": "Price per year and price per space measure unit (square meter, square foot, hectar, ...) which is defined at `spaces.spaceMeasureUnit`. If `spaces.spaceMeasureUnit` is empty, `SQUARE_METER` is used as default. `prices.rent.pricePerSqUnitPerYear` is usually based on base rent."
            },
            "priceTimeUnit": {
              "type": "string",
              "description": "time unit for the rent prices. Unless specified differently, Default is MONTH!",
              "enum": [
                "DAY",
                "WEEK",
                "MONTH",
                "YEAR"
              ],
              "default": "MONTH"
            },
            "isParkingPriceIncluded": {
              "type": "boolean",
              "description": "is the parking space (if available) included in the rent"
            },
            "parkingPrices": {
              "type": "array",
              "description": "prices for parking spaces",
              "items": {
                "allOf": [
                  {
                    "$ref": "#/$defs/priceCommon"
                  },
                  {
                    "$ref": "#/$defs/priceInformation"
                  },
                  {
                    "$ref": "#/$defs/parkingStyle"
                  }
                ]
              }
            },
            "depositNote": {
              "description": "an amount of money you pay the landlord as a returnable security deposit.",
              "allOf": [
                {
                  "$ref": "#/$defs/multiLingualText"
                }
              ]
            },
            "countrySpecific": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "fr": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "leaseRight": {
                      "description": "amount to pay to the previous tenant the be allowed to rent the property (shop/office).",
                      "allOf": [
                        {
                          "$ref": "#/$defs/priceCommon"
                        },
                        {
                          "$ref": "#/$defs/priceInformation"
                        }
                      ]
                    },
                    "accessPrice": {
                      "description": "amount to pay to the property owner to be allowed to rent the property (shop/office)",
                      "allOf": [
                        {
                          "$ref": "#/$defs/priceCommon"
                        },
                        {
                          "$ref": "#/$defs/priceInformation"
                        }
                      ]
                    },
                    "overRegulatedRent": {
                      "description": "When the rent price exceeds the regulated rent price. The amount above is mandatory.",
                      "type": "number"
                    }
                  }
                },
                "at": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "heatingCostsNet": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "heatingCosts excl. vat (if 0, no heatingCosts are included in totalRent); de: Heizkosten exkl. USt (wenn 0, dann keine HK in Warmmiete enthalten)"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    },
                    "miscCostsNet": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "overallLoadGross minus rentNet, operatingCostsNet, heatingCostsNet, overallLoadVat de: SonstigeKostenNetto; GesamtbelastungBrutto abzgl. SummeMieteNetto, BetriebskostenNetto, HeizkostenNetto und GesamtbelastungUSt"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    },
                    "operatingCostsNet": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "operating costs excl. vat (as in the operating costs catalog); de: BetriebskostenNetto; Betriebskosten exkl. Ust (lt. BK-Katalog)"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    },
                    "overallLoadGross": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "overall rent / all-inclusive rent (incl. vat, additionalCosts, heatingCosts, other costs); de: GesamtbelastungBrutto; Gesamtbelastung (inkl. Ust, BK, HK, sonstige) / Pauschalmiete"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    },
                    "overallLoadVat": {
                      "type": "number",
                      "description": "overall load of the vat de: GesamtbelastungUSt; summe mwst"
                    },
                    "overallRentGross": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "overallLoadGross minus heatingCostsGross de: GesamtMieteBrutto: (GesamtbelastungBrutto minus HeizkostenBrutto)"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    },
                    "rentNet": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "rent excl. vat (excl. operatingCosts,heatingsCosts) incl. eg. rent for furniture; de: SummeMieteNetto / HauptmietzinsNetto; Miete exkl. MwSt (exkl.BK, HK) inkl. z.B.Möbelmiete"
                        },
                        "priceInformation": {
                          "allOf": [
                            {
                              "$ref": "#/$defs/priceInformation"
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "compulsoryAuction": {
          "description": "compulsory/foreclosure auction price information.",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "auctionProceeds": {
              "description": "The final / highest auction price. de: Auktionserlös",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ]
            },
            "biddingGuarantee": {
              "description": "Minimum deposit that has to be made at the auction date.",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ]
            },
            "marketValue": {
              "description": "the average market value of the property",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ]
            },
            "minimumBid": {
              "description": "the minimum bid value de: Mindestgebot",
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                },
                {
                  "$ref": "#/$defs/priceInformation"
                }
              ]
            }
          }
        },
        "buyAuction": {
          "description": "Bid process. The purchase is voluntarily. The minimum price is set by the offerer. Potential buyers make an offer within a particular period. The offerer decides, if he accepts the highest bid, it is not binding as in a typical auction.",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "minPrice": {
              "allOf": [
                {
                  "$ref": "#/$defs/priceCommon"
                }
              ]
            },
            "startOfferPhase": {
              "type": "string",
              "format": "date",
              "description": "start date when offers can be made. must be an ISO 8601 formatted string"
            },
            "endOfferPhase": {
              "type": "string",
              "format": "date",
              "description": "end date until offers are accepted; must be an ISO 8601 formatted string"
            }
          }
        },
        "brokerageFee": {
          "description": "Real estate agency or broker Fee detailed information commission for the real estate agent; de: Maklerprovision fr: Frais d'agence",
          "type": "object",
          "additionalProperties": false,
          "allOf": [
            {
              "$ref": "#/$defs/priceCommon"
            },
            {
              "$ref": "#/$defs/priceInformation"
            }
          ],
          "properties": {
            "isFeeIncluded": {
              "type": "boolean",
              "description": "is the fee included in the buy price"
            },
            "feeFor": {
              "type": "string",
              "enum": [
                "BUYER_OR_TENANT",
                "SELLER_OR_LANDLORD",
                "SHARED"
              ],
              "description": "who pays the fee after a mediation (sale or rental) of a property by a real estate agent or broker. The buyer/ new tenant or the seller/ landlord of the property?"
            },
            "feePercentage": {
              "type": "number",
              "minimum": 0,
              "maximum": 100,
              "description": "The value of the agency fee in percentage"
            },
            "hasFee": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "will a brokerage fee be charged?"
            },
            "feeNote": {
              "description": "textarea for additional agency fee or brokerage fee information",
              "allOf": [
                {
                  "$ref": "#/$defs/multiLingualText"
                }
              ]
            },
            "countrySpecific": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "fr": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "feeScheduleLink": {
                      "description": "URL of a document listing the fees of services provided by the real estate agency or broker. Mandatory information when applicable.",
                      "type": "string",
                      "format": "url"
                    },
                    "inventoryFee": {
                      "description": "Fee amount of the inventory of the rented property",
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "showPrice": {
          "type": "boolean",
          "description": "general setting for displaying the price on the portal/ website"
        },
        "priceNote": {
          "description": "textarea for further price information, taxes or fees.",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "countrySpecific": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "fr": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "taxRegime": {
                  "type": "string"
                },
                "residentialLeaseType": {
                  "description": "Residential lease type. fr:Nature du bail résidentiel Loi 89, meblé ou Loi 48...",
                  "type": "string"
                },
                "isPTZeligible": {
                  "description": "fr: est-ce que le bien est éligible au prêt à taux zéro ?",
                  "type": "boolean"
                },
                "taxReductionZone": {
                  "description": "In France and Belgium, the buyers or landlords can get tax reductions when they buy or rent a new built property. The tax reduction level depends on the geographic zone to which the property belongs.",
                  "type": "string",
                  "enum": [
                    "A",
                    "A_BIS",
                    "B1",
                    "B2",
                    "C"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "spaces": {
      "type": "object",
      "description": "contains different space types for a property. you can submit multiple spaces here (e.g. livingSpace, atticSpace and gardenSpace)",
      "required": [
        "spaceMeasureUnit"
      ],
      "additionalProperties": false,
      "properties": {
        "spaceMeasureUnit": {
          "type": "string",
          "enum": [
            "SQUARE_METER",
            "SQUARE_INCH",
            "SQUARE_FOOT",
            "SQUARE_YARD",
            "HECTARE",
            "ACRE"
          ],
          "description": "measure unit for the space (square meter by default).",
          "default": "SQUARE_METER"
        },
        "buildingFront": {
          "type": "number",
          "description": "building front facade in length measure unit (meter, inch, foot, yard, ...) Based on `spaces.spaceMeasureUnit`, so meters will be used as default if empty.",
          "minimum": 0,
          "maximum": 99999999
        },
        "kitchenSpace": {
          "type": "number",
          "minimum": 0,
          "maximum": 99999999,
          "description": "space of the kitchen"
        },
        "overallSpace": {
          "type": "number",
          "minimum": 0,
          "maximum": 99999999,
          "description": "total space of the property"
        },
        "usableFloorSpace": {
          "type": "number",
          "minimum": 0,
          "maximum": 99999999,
          "description": "space that can be used, after deducting functional areas, stairs, etc. depending on the purpose"
        },
        "spaceMax": {
          "type": "number",
          "minimum": 0,
          "maximum": 99999999,
          "description": "For a catalog house or a new built house or a program, the biggest property available, built or not yet built. If a property has different units/ spaces, this is the biggest space it has"
        },
        "spaceMin": {
          "type": "number",
          "minimum": 0,
          "maximum": 99999999,
          "description": "For a catalog house or a new built house or a program, the smallest property available, built or not yet built. If a property has different units/ spaces, this is the smallest space it has"
        },
        "plotSpace": {
          "type": "number",
          "minimum": 0,
          "maximum": 99999999,
          "description": "space of the plot"
        },
        "plotFront": {
          "type": "number",
          "minimum": 0,
          "maximum": 99999999,
          "description": "plot front in length measure unit (meter, inch, foot, yard, ...) Based on `spaces.spaceMeasureUnit`, so meters will be used as default if empty."
        },
        "additionalSpace": {
          "type": "number",
          "minimum": 0,
          "maximum": 99999999,
          "description": "contains all cumulated additional space from outbuilding, extended or misc places."
        },
        "residential": {
          "type": "object",
          "description": "residential / living space types with their value.",
          "additionalProperties": false,
          "properties": {
            "livingSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "core space within a building in which people may live"
            },
            "livingRoomSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space of the livingroom in a house or apartment"
            },
            "atticSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space directly under the roof of a building"
            },
            "balconySpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space of the balcony, seperated to terrace"
            },
            "cellarSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "cellar space of the building or that belongs to the assigned unit, eg apartment, office"
            },
            "gardenSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space of the garden"
            },
            "terraceSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space of the terrace, separated to balcony"
            }
          }
        },
        "commercial": {
          "type": "object",
          "description": "commercial space types with their value.",
          "additionalProperties": false,
          "properties": {
            "maxDivisible": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "if a space can be divided, this is the maximum divisible space; not to be mixed up with the field spaceMax; not divisions and not a sum of divisions either."
            },
            "minDivisible": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "if a space can be divided, this is the minimum divisible space; not to be mixed up with the field spaceMin; not divisions and not a sum of divisions either."
            },
            "commercialSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "amount of the space used for commercial purposes"
            },
            "shopSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space of a shop or store"
            },
            "storageSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space of the storage area"
            },
            "sellSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "refers to the area used for sales, in the retail and service sectors"
            },
            "officeSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space of the office"
            },
            "officePartSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "space of a single office unit in an office building with several units"
            },
            "managementSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "area used for administrative or management purposes"
            },
            "restaurantSpace": {
              "type": "number",
              "minimum": 0,
              "maximum": 99999999,
              "description": "Amount of the restaurant space"
            },
            "countrySpecific": {
              "type": "object",
              "additionalProperties": false
            }
          }
        }
      }
    },
    "structure": {
      "type": "object",
      "description": "structure of the property",
      "additionalProperties": false,
      "properties": {
        "building": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "attic": {
              "type": "string",
              "enum": [
                "CONVERTED",
                "PART_CONVERTED",
                "CONVERTIBLE",
                "ISOLATED",
                "ACCESSIBLE_WITH_FIXED_STAIRS"
              ],
              "description": "- CONVERTED: attic can be used as a living space.\n- PART_CONVERTED: attic is part converted, can be used as\n  a living space but part of the space is still convertible\n- CONVERTIBLE: There is an attic, but work is required to\n  use it as a living space.\n- ISOLATED : attic is isolated.\n- ACCESSIBLE_WITH_FIXED_STAIRS : attic is accessible with fixed stairs."
            },
            "balconyDirection": {
              "description": "geographical orientation of the biggest balcony or terrace",
              "allOf": [
                {
                  "$ref": "#/$defs/orientation"
                }
              ]
            },
            "gardenOrientation": {
              "description": "geographical orientation of the garden",
              "allOf": [
                {
                  "$ref": "#/$defs/orientation"
                }
              ]
            },
            "barrierFree": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "property is accessible to people with mobility difficulties"
            },
            "bath": {
              "description": "Bathroom equipment - multiple choice possible",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "shower": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE",
                    "ROMAN_SHOWER"
                  ]
                },
                "bathtub": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "window": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "bidet": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "urinal": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "guestToilet": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "separateBathAndToilet": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "toilet": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "bathroomSink": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                }
              }
            },
            "cellar": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "PART",
                "NOT_APPLICABLE"
              ],
              "description": "cellar present"
            },
            "elevator": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "person": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "freight": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                }
              },
              "description": "elevator type - not specified; passenger elevator or freight elevator"
            },
            "kitchen": {
              "description": "kitchen options",
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "kitchenType": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "builtIn": {
                      "type": "boolean",
                      "description": "kitchen facilities and cabinets are fitted to the room providing a seamless, integrated look"
                    },
                    "kitchenette": {
                      "type": "boolean",
                      "description": "small cooking area usually with only basic facilities like refrigerator, hotplate and sink. Sometimes this is even hidden in a closet."
                    },
                    "open": {
                      "type": "boolean",
                      "description": "an open-concept kitchen without walls separating it from the rest of the property."
                    },
                    "separated": {
                      "type": "boolean",
                      "description": "the kitchen is a room of its own, separated from the rest of the living area."
                    }
                  }
                },
                "kitchenEquipment": {
                  "type": "string",
                  "enum": [
                    "NONE",
                    "STORAGE",
                    "FULLY_EQUIPPED",
                    "USA_INSTALLED",
                    "USA_UNINSTALLED",
                    "USA_SEMI_EQUIPPED",
                    "USA_HYPER_EQUIPPED",
                    "SEMI_EQUIPPED"
                  ]
                },
                "pantry": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                },
                "singleStorey": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ]
                }
              }
            },
            "numberOfFloors": {
              "type": "integer",
              "minimum": 1,
              "maximum": 999,
              "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"
            },
            "numberOfFacades": {
              "type": "integer",
              "minimum": 1,
              "maximum": 999999,
              "description": "number of exterior walls of the building separated from any adjacent building"
            },
            "roomHeight": {
              "type": "number",
              "minimum": 0,
              "description": "room height in length measure unit (meter, inch, foot, ...) If there are several different buildings, put in the maximal room height Based on `spaces.spaceMeasureUnit`, so meters will be used as default if empty."
            },
            "offeredFloors": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5,
              "description": "special case! refers to the number of floors explicitly offered on a property, e.g. a multistorey apartment can have 2 (duplex) or 3 (triplex) floors. ATTENTION! not to be confused with numberOfFloors!"
            },
            "roofStyle": {
              "type": "string",
              "description": "Style of the roof",
              "enum": [
                "HALF_HIPPED_ROOF",
                "GAMBREL",
                "MONO_PITCHED_ROOF",
                "GABLE",
                "HIP_ROOF",
                "FLAT_ROOF",
                "PYRAMIDAL_ROOF",
                "OTHER"
              ]
            },
            "locationInBuilding": {
              "type": "string",
              "enum": [
                "GROUNDFLOOR",
                "HALF_BASEMENT",
                "ROOF_STOREY"
              ],
              "description": "Location of the apartment in the building - GROUNDFLOOR: apartment is located on the ground floor,\n  so usually you do not have stairs\n- HALF_BASEMENT: apartment is located half below ground,\n  so that it can still have windows to let in daylight\n- ROOF_STOREY: apartment is located directly under the roof\n  with sloping ceiling"
            },
            "locationAtCorner": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ],
              "description": "the property is located at the corner of two streets"
            },
            "calm": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "withView": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "courtyardView": {
                  "type": "boolean",
                  "description": "with a view on the courtyard"
                },
                "lakeView": {
                  "type": "boolean",
                  "description": "with a view on the lake"
                },
                "mountainView": {
                  "type": "boolean",
                  "description": "with a view on the mountain"
                },
                "overlooking": {
                  "type": "boolean",
                  "description": "view when it cannot be seen from any other buildings"
                },
                "seaView": {
                  "type": "boolean",
                  "description": "with a view on the sea"
                },
                "skiView": {
                  "type": "boolean",
                  "description": "with a view on the ski slope"
                }
              },
              "description": "view(s) from the property which can be important for price estimation"
            },
            "luminous": {
              "type": "string",
              "enum": [
                "YES",
                "NO",
                "NOT_APPLICABLE"
              ]
            },
            "window": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "bayWindow": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE"
                  ],
                  "description": "presence of a bay window"
                },
                "blinds": {
                  "type": "string",
                  "enum": [
                    "YES",
                    "NO",
                    "NOT_APPLICABLE",
                    "ELECTRIC",
                    "MANUAL"
                  ],
                  "description": "presence of blinds on the windows"
                },
                "windowMaterial": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "woodenWindows": {
                      "type": "string",
                      "enum": [
                        "YES",
                        "NO",
                        "NOT_APPLICABLE"
                      ],
                      "description": "presence of wooden windows"
                    },
                    "aluminiumWindows": {
                      "type": "string",
                      "enum": [
                        "YES",
                        "NO",
                        "NOT_APPLICABLE"
                      ],
                      "description": "presence of aluminium windows"
                    },
                    "muntinWindows": {
                      "type": "string",
                      "enum": [
                        "YES",
                        "NO",
                        "NOT_APPLICABLE"
                      ],
                      "description": "presence of muntin windows"
                    },
                    "plasticWindows": {
                      "type": "string",
                      "enum": [
                        "YES",
                        "NO",
                        "NOT_APPLICABLE"
                      ],
                      "description": "presence of plastic windows"
                    },
                    "insulatedGlazing": {
                      "type": "string",
                      "enum": [
                        "YES",
                        "NO",
                        "NOT_APPLICABLE",
                        "SIMPLE",
                        "DOUBLE",
                        "TRIPLE"
                      ]
                    }
                  }
                }
              }
            },
            "shape": {
              "type": "string",
              "enum": [
                "L_SHAPE",
                "U_SHAPE",
                "V_SHAPE",
                "RECTANGULAR",
                "SQUARE",
                "OTHER"
              ],
              "description": "The shape of the house represents the external form of the house."
            },
            "hasSplitFloor": {
              "type": "boolean",
              "description": "the property has at least one floor which level is between 2 other floors. This floor is not directly above or below these other floors. A \"half floor\" or a split floor."
            },
            "wallConstructionMaterial": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "MASSIVE_WOOD",
                  "CINDER_BLOCK",
                  "INSULATING_CINDER_BLOCK",
                  "CELLULAR_CONCRETE",
                  "BRICK",
                  "HONEYCOMB_BRICK",
                  "LIMESTONE",
                  "WOOD_FRAME",
                  "METAL_FRAME"
                ]
              },
              "description": "The main materials used to build the wall of the building."
            }
          }
        },
        "rooms": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "numberOfRooms": {
              "type": "number",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of rooms available in the property. Floating point numbers may also be used here, because half rooms are possible."
            },
            "numberOfBedRooms": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of bedrooms"
            },
            "numberOfBathRooms": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of bath and shower rooms. The separation is not obvious in some countries"
            },
            "numberOfToilets": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of toilets as separated rooms"
            },
            "numberOfBalconies": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of balconies"
            },
            "numberOfTerraces": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of terraces (+ stalls for shops)"
            },
            "numberOfKitchens": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of kitchens"
            },
            "numberOfUnits": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of units (residential or commercial)"
            }
          }
        },
        "commercial": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "floorLoad": {
              "type": "integer",
              "description": "maximal floor load for the property, expressed in Kg/m2"
            },
            "floorLoadUpperFloors": {
              "type": "number",
              "description": "maximal floor load for the upper floors of the property, expressed in Kg/m2"
            },
            "hallHeight": {
              "type": "number",
              "minimum": 0,
              "description": "hall height in length measure unit (meter, inch, foot, ...) If there are several different buildings, put in the maximal hall height Based on `spaces.spaceMeasureUnit`, so meters will be used as default if empty."
            },
            "numberOfBeds": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of beds in total (single and double beds included)"
            },
            "numberOfLoadingDocks": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of loading docks for trucks"
            },
            "numberOfDesks": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999
            },
            "numberOfMeetingRooms": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999
            },
            "numberOfOfficeRooms": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999
            },
            "windowFront": {
              "type": "number",
              "minimum": 0,
              "description": "window front in length measure unit (meter, inch, foot, ...) Based on `spaces.spaceMeasureUnit`, so meters will be used as default if empty."
            }
          }
        },
        "parkingLots": {
          "type": "object",
          "description": "number of available parking spaces that belong to the property",
          "additionalProperties": false,
          "properties": {
            "outside": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of parking spaces that are outside, not in a garage"
            },
            "streetParking": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of parking spaces along the street"
            },
            "carport": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of carports (a shelter for vehicles that is open-sided and usually attached to a house)"
            },
            "garage": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of garages (building for parking one vehicle usually with a vertical rolling door)"
            },
            "doubleGarage": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of doubleGarages (like a garage but for two vehicles)"
            },
            "duplex": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of duplex parking spaces (double parking on one parking space with a parking lift)"
            },
            "garageArea": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of garages in a garagesArea (with several garages only, no houses attached)"
            },
            "parkingArea": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of parking lots (in a confined area full of parking spaces)"
            },
            "carPark": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of parking spaces in a carPark (usually multistorey car park building)"
            },
            "underground": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of parking spaces in a undergroundGarage (car park mainly below earth)"
            },
            "boatDock": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of parkings for a boat (a berth)"
            },
            "undefined": {
              "type": "integer",
              "minimum": 0,
              "maximum": 999999,
              "description": "number of undefined parkings"
            }
          }
        }
      }
    },
    "texts": {
      "type": "object",
      "description": "the texts 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 property",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "description": {
          "description": "description of the property",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "features": {
          "description": "description of the interior, features of the property",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "extendedInformation": {
          "description": "additional information of the property",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        },
        "area": {
          "description": "area description of the property",
          "allOf": [
            {
              "$ref": "#/$defs/multiLingualText"
            }
          ]
        }
      }
    }
  }
}