{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:FloorPlan",
  "title": "FloorPlan",
  "description": "A FloorPlan is an explicit representation of a collection of similar accommodations, allowing the provision of common information (room counts, sizes, layout diagrams) and offers for rental or sale. In typical use, some [[ApartmentComplex]] has an [[accommodationFloorPlan]] which is a [[FloorPlan]].  A FloorPlan is always in the context of a particular place, either a larger [[ApartmentComplex]] or a single [[Apartment]]. The visual/spatial aspects of a floor plan (i.e. room layout, [see wikipedia](https://en.wikipedia.org/wiki/Floor_plan)) can be indicated using [[image]]. ",
  "type": "object",
  "allOf": [
    {
      "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.",
      "$ref": "schema:Intangible"
    }
  ],
  "properties": {
    "amenityFeature": {
      "description": "An amenity feature (e.g. a characteristic or service) of the Accommodation. This generic property does not make a statement about whether the feature is included in an offer for the main accommodation or available at extra costs.",
      "oneOf": [
        { "$ref": "schema:LocationFeatureSpecification" },
        {
          "type": "array",
          "items": { "$ref": "schema:LocationFeatureSpecification" }
        }
      ]
    },
    "floorSize": {
      "description": "The size of the accommodation, e.g. in square meter or squarefoot.\nTypical unit code(s): MTK for square meter, FTK for square foot, or YDK for square yard.",
      "$ref": "schema:QuantitativeValue"
    },
    "isPlanForApartment": {
      "description": "Indicates some accommodation that this floor plan describes.",
      "oneOf": [
        { "$ref": "schema:Accommodation" },
        { "type": "array", "items": { "$ref": "schema:Accommodation" } }
      ]
    },
    "layoutImage": {
      "description": "A schematic image showing the floorplan layout.",
      "oneOf": [
        {
          "anyOf": [
            { "type": "string", "format": "uri" },
            { "$ref": "schema:ImageObject" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string", "format": "uri" },
              { "$ref": "schema:ImageObject" }
            ]
          }
        }
      ]
    },
    "numberOfAccommodationUnits": {
      "description": "Indicates the total (available plus unavailable) number of accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAvailableAccommodationUnits]].",
      "oneOf": [
        { "$ref": "schema:QuantitativeValue" },
        { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } }
      ]
    },
    "numberOfAvailableAccommodationUnits": {
      "description": "Indicates the number of available accommodation units in an [[ApartmentComplex]], or the number of accommodation units for a specific [[FloorPlan]] (within its specific [[ApartmentComplex]]). See also [[numberOfAccommodationUnits]].",
      "oneOf": [
        { "$ref": "schema:QuantitativeValue" },
        { "type": "array", "items": { "$ref": "schema:QuantitativeValue" } }
      ]
    },
    "numberOfBathroomsTotal": {
      "description": "The total integer number of bathrooms in some [[Accommodation]], following real estate conventions as [documented in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsTotalInteger+Field): \"The simple sum of the number of bathrooms. For example for a property with two Full Bathrooms and one Half Bathroom, the Bathrooms Total Integer will be 3.\". See also [[numberOfRooms]].",
      "type": "integer"
    },
    "numberOfBedrooms": {
      "description": "The total integer number of bedrooms in a some [[Accommodation]], [[ApartmentComplex]] or [[FloorPlan]].",
      "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }]
    },
    "numberOfFullBathrooms": {
      "description": "Number of full bathrooms - The total number of full and ¾ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsFull field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsFull+Field).",
      "oneOf": [
        { "type": "number" },
        { "type": "array", "items": { "type": "number" } }
      ]
    },
    "numberOfPartialBathrooms": {
      "description": "Number of partial bathrooms - The total number of half and ¼ bathrooms in an [[Accommodation]]. This corresponds to the [BathroomsPartial field in RESO](https://ddwiki.reso.org/display/DDW17/BathroomsPartial+Field). ",
      "oneOf": [
        { "type": "number" },
        { "type": "array", "items": { "type": "number" } }
      ]
    },
    "numberOfRooms": {
      "description": "The number of rooms (excluding bathrooms and closets) of the accommodation or lodging business.\nTypical unit code(s): ROM for room or C62 for no unit. The type of room can be put in the unitText property of the QuantitativeValue.",
      "anyOf": [{ "type": "number" }, { "$ref": "schema:QuantitativeValue" }]
    },
    "petsAllowed": {
      "description": "Indicates whether pets are allowed to enter the accommodation or lodging business. More detailed information can be put in a text value.",
      "anyOf": [{ "type": "boolean" }, { "type": "string" }]
    }
  }
}
