{
  "schema": 6,
  "id": "example-flat",
  "name": "Example flat",
  "site": {
    "lat": 45.07,
    "lng": 7.69,
    "north": 0
  },
  "sheets": [
    {
      "id": "sheet",
      "pxPerM": 100
    },
    {
      "id": "sheet-1",
      "pxPerM": 100
    }
  ],
  "levels": [
    {
      "id": "level",
      "name": "Third floor",
      "shortName": "3",
      "elevation": 9
    },
    {
      "id": "level-1",
      "name": "Mezzanine",
      "shortName": "M",
      "elevation": 11.85
    }
  ],
  "areas": [
    {
      "id": "home",
      "name": "Flat",
      "kind": "dwelling"
    }
  ],
  "plans": [
    {
      "id": "plan",
      "sheet": "sheet",
      "level": "level",
      "origin": [0, 0],
      "placement": {
        "x": 0,
        "z": 0,
        "rotation": 0
      },
      "heights": {
        "ceiling": 2.7,
        "outdoorFloor": -0.03,
        "balconySlab": 0.15
      },
      "rooms": [
        {
          "id": "living",
          "area": "home",
          "name": "Living",
          "use": "living",
          "shape": {
            "kind": "region",
            "at": [180, 330]
          },
          "floor": {
            "floor": "floor-1"
          },
          "views": []
        },
        {
          "id": "kitchen",
          "area": "home",
          "name": "Kitchen",
          "use": "kitchen",
          "shape": {
            "kind": "region",
            "at": [225, 610]
          },
          "floor": "gres",
          "views": []
        },
        {
          "id": "bath",
          "area": "home",
          "name": "Bath",
          "use": "bathroom",
          "shape": {
            "kind": "region",
            "at": [590, 700]
          },
          "floor": {
            "floor": "floor-2"
          },
          "views": []
        },
        {
          "id": "bedroom",
          "area": "home",
          "name": "Bedroom",
          "use": "bedroom",
          "shape": {
            "kind": "region",
            "at": [870, 130]
          },
          "floor": "parquet",
          "views": []
        },
        {
          "id": "hall",
          "area": "home",
          "name": "Hall",
          "use": "hallway",
          "shape": {
            "kind": "region",
            "at": [825, 520]
          },
          "floor": "parquet",
          "views": []
        },
        {
          "id": "laundry",
          "area": "home",
          "name": "Laundry",
          "use": "laundry",
          "shape": {
            "kind": "region",
            "at": [1060, 600]
          },
          "floor": "gres",
          "views": []
        },
        {
          "id": "balcony",
          "area": "home",
          "name": "Balcony",
          "use": "balcony",
          "shape": {
            "kind": "region",
            "at": [200, 870]
          },
          "floor": "outdoor",
          "views": []
        }
      ],
      "walls": [
        {
          "id": "wall-1",
          "a": [0, 0],
          "b": [700, 0],
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-1",
              "kind": "window",
              "along": [70, 190],
              "sill": 0.9,
              "top": 2.2,
              "type": "type-2"
            },
            {
              "id": "opening-2",
              "kind": "window",
              "along": [430, 570],
              "sill": 0.9,
              "top": 2.2,
              "type": "type-2"
            }
          ]
        },
        {
          "id": "wall-2",
          "a": [700, 0],
          "b": [1200, 0],
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-3",
              "kind": "window",
              "along": [180, 320],
              "sill": 0.9,
              "top": 2.2,
              "type": "type-2"
            }
          ]
        },
        {
          "id": "wall-3",
          "a": [1200, 0],
          "b": [1200, 400],
          "thickness": 0.3,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-4",
          "a": [1200, 400],
          "b": [1200, 550],
          "thickness": 0.3,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-5",
          "a": [1200, 550],
          "b": [1200, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-6",
          "a": [1200, 800],
          "b": [950, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-4",
              "kind": "window",
              "along": [90, 150],
              "sill": 1.2,
              "top": 2.2,
              "type": "type-1"
            }
          ]
        },
        {
          "id": "wall-7",
          "a": [950, 800],
          "b": [700, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-5",
              "kind": "door",
              "along": [75, 165],
              "sill": 0,
              "top": 2.1,
              "type": "type-7"
            }
          ]
        },
        {
          "id": "wall-8",
          "a": [700, 800],
          "b": [450, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-6",
              "kind": "window",
              "along": [80, 150],
              "sill": 1.2,
              "top": 2.2,
              "type": "type-1"
            }
          ]
        },
        {
          "id": "wall-9",
          "a": [450, 800],
          "b": [420, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-10",
          "a": [420, 800],
          "b": [60, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-7",
              "kind": "french",
              "along": [140, 260],
              "sill": 0,
              "top": 2.3,
              "type": "type-4"
            }
          ]
        },
        {
          "id": "wall-11",
          "a": [60, 800],
          "b": [0, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-12",
          "a": [0, 800],
          "b": [0, 500],
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-8",
              "kind": "window",
              "along": [80, 200],
              "sill": 0.9,
              "top": 2.2,
              "type": "type-3"
            }
          ]
        },
        {
          "id": "wall-13",
          "a": [0, 500],
          "b": [0, 420],
          "thickness": 0.3,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-14",
          "a": [0, 420],
          "b": [0, 80],
          "sagitta": 120,
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-9",
              "kind": "window",
              "along": [86, 136],
              "sill": 0.5,
              "top": 2.2,
              "type": "type-1"
            },
            {
              "id": "opening-10",
              "kind": "window",
              "along": [197, 247],
              "sill": 0.5,
              "top": 2.2,
              "type": "type-1"
            },
            {
              "id": "opening-11",
              "kind": "window",
              "along": [308, 358],
              "sill": 0.5,
              "top": 2.2,
              "type": "type-1"
            }
          ]
        },
        {
          "id": "wall-15",
          "a": [0, 80],
          "b": [0, 0],
          "thickness": 0.3,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-16",
          "a": [700, 0],
          "b": [700, 400],
          "thickness": 0.1,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-17",
          "a": [700, 400],
          "b": [700, 500],
          "thickness": 0,
          "kind": "separator",
          "openings": []
        },
        {
          "id": "wall-18",
          "a": [700, 400],
          "b": [1200, 400],
          "thickness": 0.1,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-12",
              "kind": "door",
              "along": [55, 145],
              "sill": 0,
              "top": 2.1,
              "type": "type-5"
            }
          ]
        },
        {
          "id": "wall-19",
          "a": [0, 500],
          "b": [450, 500],
          "thickness": 0.1,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-13",
              "kind": "door",
              "along": [55, 145],
              "sill": 0,
              "top": 2.1,
              "type": "type-5"
            }
          ]
        },
        {
          "id": "wall-20",
          "a": [450, 500],
          "b": [700, 500],
          "thickness": 0.1,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-21",
          "a": [450, 500],
          "b": [450, 800],
          "thickness": 0.1,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-22",
          "a": [700, 500],
          "b": [700, 800],
          "thickness": 0.1,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-14",
              "kind": "door",
              "along": [30, 100],
              "sill": 0,
              "top": 2.1,
              "type": "type-6"
            }
          ]
        },
        {
          "id": "wall-23",
          "a": [950, 550],
          "b": [950, 800],
          "thickness": 0.1,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-15",
              "kind": "door",
              "along": [60, 140],
              "sill": 0,
              "top": 2.1,
              "type": "type-5"
            }
          ]
        },
        {
          "id": "wall-24",
          "a": [950, 550],
          "b": [1200, 550],
          "thickness": 0.1,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-25",
          "a": [60, 800],
          "b": [60, 940],
          "thickness": 0.04,
          "kind": "railing",
          "openings": []
        },
        {
          "id": "wall-26",
          "a": [60, 940],
          "b": [420, 940],
          "thickness": 0.04,
          "kind": "railing",
          "openings": []
        },
        {
          "id": "wall-27",
          "a": [420, 940],
          "b": [420, 800],
          "thickness": 0.04,
          "kind": "railing",
          "openings": []
        }
      ],
      "awnings": [],
      "finishes": [],
      "items": [],
      "lights": [
        {
          "id": "light-1",
          "kind": "sputnik",
          "at": [310, 200]
        },
        {
          "id": "light-2",
          "kind": "bulbPendant",
          "at": [-40, 250],
          "drop": 0.6,
          "cd": 100
        },
        {
          "id": "light-3",
          "kind": "squareCeiling",
          "at": [225, 650]
        },
        {
          "id": "light-4",
          "kind": "squareCeiling",
          "at": [575, 650]
        },
        {
          "id": "light-5",
          "kind": "bulbPendant",
          "at": [880, 200],
          "drop": 0.6,
          "cd": 100
        },
        {
          "id": "light-6",
          "kind": "squareCeiling",
          "at": [825, 620]
        },
        {
          "id": "light-7",
          "kind": "squareCeiling",
          "at": [1075, 475]
        },
        {
          "id": "light-8",
          "kind": "squareCeiling",
          "at": [1075, 680]
        }
      ],
      "plates": [
        {
          "id": "plate-1",
          "wall": "wall-7",
          "side": "right",
          "along": 180,
          "modules": 3,
          "kind": "switch",
          "type": "switch"
        },
        {
          "id": "plate-2",
          "wall": "wall-18",
          "side": "left",
          "along": 160,
          "modules": 3,
          "kind": "switch",
          "type": "switch"
        },
        {
          "id": "plate-3",
          "wall": "wall-19",
          "side": "right",
          "along": 160,
          "modules": 3,
          "kind": "switch",
          "type": "switch"
        },
        {
          "id": "plate-4",
          "wall": "wall-19",
          "side": "left",
          "along": 40,
          "modules": 3,
          "kind": "switch",
          "type": "switch"
        },
        {
          "id": "plate-5",
          "wall": "wall-20",
          "side": "left",
          "along": 150,
          "modules": 3,
          "kind": "switch",
          "type": "two-way"
        },
        {
          "id": "plate-6",
          "wall": "wall-22",
          "side": "left",
          "along": 18,
          "modules": 3,
          "kind": "switch",
          "type": "switch"
        },
        {
          "id": "plate-7",
          "wall": "wall-23",
          "side": "left",
          "along": 155,
          "modules": 3,
          "kind": "switch",
          "type": "switch"
        },
        {
          "id": "plate-8",
          "wall": "wall-10",
          "side": "right",
          "along": 275,
          "modules": 3,
          "kind": "switch",
          "type": "switch"
        },
        {
          "id": "plate-9",
          "wall": "wall-1",
          "side": "right",
          "along": 225,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-10",
          "wall": "wall-20",
          "side": "left",
          "along": 200,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-11",
          "wall": "wall-13",
          "side": "right",
          "along": 50,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-12",
          "wall": "wall-16",
          "side": "right",
          "along": 50,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-13",
          "wall": "wall-19",
          "side": "left",
          "along": 325,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-14",
          "wall": "wall-14",
          "side": "right",
          "along": 400,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-15",
          "wall": "wall-10",
          "side": "right",
          "along": 325,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-16",
          "wall": "wall-21",
          "side": "right",
          "along": 250,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-17",
          "wall": "wall-21",
          "side": "right",
          "along": 100,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-18",
          "wall": "wall-10",
          "side": "right",
          "along": 100,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-19",
          "wall": "wall-19",
          "side": "right",
          "along": 200,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-20",
          "wall": "wall-22",
          "side": "right",
          "along": 250,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-21",
          "wall": "wall-3",
          "side": "right",
          "along": 325,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-22",
          "wall": "wall-2",
          "side": "right",
          "along": 375,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-23",
          "wall": "wall-18",
          "side": "left",
          "along": 200,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-24",
          "wall": "wall-16",
          "side": "left",
          "along": 275,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-25",
          "wall": "wall-23",
          "side": "right",
          "along": 200,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-26",
          "wall": "wall-5",
          "side": "right",
          "along": 50,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-27",
          "wall": "wall-24",
          "side": "right",
          "along": 50,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-28",
          "wall": "wall-6",
          "side": "right",
          "along": 50,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        }
      ],
      "stairs": [
        {
          "id": "stair-1",
          "to": "level-1",
          "path": [[580, 450], [190, 450]],
          "width": 0.9,
          "turn": "landing"
        }
      ]
    },
    {
      "id": "plan-1",
      "sheet": "sheet-1",
      "level": "level-1",
      "origin": [0, 0],
      "placement": {
        "x": 0,
        "z": 0,
        "rotation": 0
      },
      "heights": {
        "ceiling": 2.4,
        "outdoorFloor": -0.03,
        "balconySlab": 0.15
      },
      "rooms": [
        {
          "id": "mezzanine",
          "area": "home",
          "name": "Mezzanine",
          "use": "study",
          "shape": {
            "kind": "region",
            "at": [120, 600]
          },
          "floor": "parquet",
          "views": []
        }
      ],
      "walls": [
        {
          "id": "wall-28",
          "a": [0, 400],
          "b": [0, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-29",
          "a": [0, 800],
          "b": [450, 800],
          "thickness": 0.3,
          "kind": "wall",
          "openings": [
            {
              "id": "opening-16",
              "kind": "window",
              "along": [165, 285],
              "sill": 0.9,
              "top": 2.2,
              "type": "type-2"
            }
          ]
        },
        {
          "id": "wall-30",
          "a": [450, 800],
          "b": [450, 500],
          "thickness": 0.1,
          "kind": "wall",
          "openings": []
        },
        {
          "id": "wall-31",
          "a": [450, 500],
          "b": [190, 500],
          "thickness": 0.04,
          "kind": "railing",
          "openings": []
        },
        {
          "id": "wall-32",
          "a": [190, 500],
          "b": [190, 400],
          "thickness": 0,
          "kind": "separator",
          "openings": []
        },
        {
          "id": "wall-33",
          "a": [190, 400],
          "b": [0, 400],
          "thickness": 0.04,
          "kind": "railing",
          "openings": []
        }
      ],
      "awnings": [],
      "finishes": [],
      "items": [],
      "lights": [
        {
          "id": "light-9",
          "kind": "barPendant",
          "at": [225, 700]
        }
      ],
      "plates": [
        {
          "id": "plate-29",
          "wall": "wall-28",
          "side": "left",
          "along": 40,
          "modules": 3,
          "kind": "switch",
          "type": "two-way"
        },
        {
          "id": "plate-30",
          "wall": "wall-28",
          "side": "left",
          "along": 75,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-31",
          "wall": "wall-30",
          "side": "left",
          "along": 50,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-32",
          "wall": "wall-29",
          "side": "left",
          "along": 125,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-33",
          "wall": "wall-30",
          "side": "left",
          "along": 250,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        },
        {
          "id": "plate-34",
          "wall": "wall-28",
          "side": "left",
          "along": 250,
          "modules": 3,
          "kind": "socket",
          "type": "standard"
        }
      ]
    }
  ],
  "presentations": [
    {
      "id": "home",
      "name": "Flat",
      "mode": "true",
      "areas": [
        {
          "area": "home"
        }
      ]
    }
  ],
  "openingTypes": [
    {
      "id": "type-1",
      "name": "One-leaf window",
      "kind": "window",
      "width": 0.6,
      "sill": 0.9,
      "top": 2.2,
      "leaves": [
        {
          "operation": "side-hung",
          "hinge": "left",
          "opens": "in"
        }
      ],
      "frame": {
        "material": "wood",
        "colorInside": "#4a3426",
        "colorOutside": "#4a3426",
        "position": "middle"
      },
      "glazing": "double",
      "sills": {
        "inner": {
          "material": "wood",
          "overhang": 0.03
        },
        "outer": {
          "material": "marble"
        }
      },
      "shading": [
        {
          "kind": "roller-shutter",
          "box": "inside",
          "drive": "strap"
        }
      ]
    },
    {
      "id": "type-2",
      "name": "Two-leaf window",
      "kind": "window",
      "width": 1.2,
      "sill": 0.9,
      "top": 2.2,
      "leaves": [
        {
          "operation": "side-hung",
          "hinge": "left",
          "opens": "in"
        },
        {
          "operation": "side-hung",
          "hinge": "right",
          "opens": "in"
        }
      ],
      "frame": {
        "material": "wood",
        "colorInside": "#4a3426",
        "colorOutside": "#4a3426",
        "position": "middle"
      },
      "glazing": "double",
      "sills": {
        "inner": {
          "material": "wood",
          "overhang": 0.03
        },
        "outer": {
          "material": "marble"
        }
      },
      "shading": [
        {
          "kind": "roller-shutter",
          "box": "inside",
          "drive": "strap"
        }
      ]
    },
    {
      "id": "type-3",
      "name": "Tilt-and-turn window",
      "kind": "window",
      "width": 1.2,
      "sill": 0.9,
      "top": 2.2,
      "leaves": [
        {
          "operation": "side-hung",
          "hinge": "left",
          "opens": "in"
        },
        {
          "operation": "tilt-turn",
          "hinge": "right",
          "opens": "in"
        }
      ],
      "frame": {
        "material": "wood",
        "colorInside": "#4a3426",
        "colorOutside": "#4a3426",
        "position": "middle"
      },
      "glazing": "double",
      "sills": {
        "inner": {
          "material": "wood",
          "overhang": 0.03
        },
        "outer": {
          "material": "marble"
        }
      },
      "shading": [
        {
          "kind": "roller-shutter",
          "box": "inside",
          "drive": "strap"
        }
      ]
    },
    {
      "id": "type-4",
      "name": "French window",
      "kind": "french",
      "width": 1.2,
      "sill": 0,
      "top": 2.3,
      "leaves": [
        {
          "operation": "side-hung",
          "hinge": "left",
          "opens": "in"
        },
        {
          "operation": "side-hung",
          "hinge": "right",
          "opens": "in"
        }
      ],
      "frame": {
        "material": "wood",
        "colorInside": "#4a3426",
        "colorOutside": "#4a3426",
        "position": "middle"
      },
      "glazing": "double",
      "sills": {
        "inner": null,
        "outer": {
          "material": "marble"
        }
      },
      "shading": [
        {
          "kind": "roller-shutter",
          "box": "inside",
          "drive": "strap"
        }
      ]
    },
    {
      "id": "type-5",
      "name": "Interior door",
      "kind": "door",
      "width": 0.8,
      "sill": 0,
      "top": 2.1,
      "leaves": [
        {
          "operation": "side-hung",
          "hinge": "left",
          "opens": "in"
        }
      ],
      "frame": {
        "material": "wood",
        "colorInside": "#4a3426",
        "colorOutside": "#4a3426",
        "position": "middle"
      },
      "glazing": "double",
      "sills": {
        "inner": null,
        "outer": null
      },
      "shading": []
    },
    {
      "id": "type-6",
      "name": "Pocket sliding door",
      "kind": "door",
      "width": 0.8,
      "sill": 0,
      "top": 2.1,
      "leaves": [
        {
          "operation": "sliding",
          "hinge": "left",
          "opens": "in"
        }
      ],
      "frame": {
        "material": "wood",
        "colorInside": "#4a3426",
        "colorOutside": "#4a3426",
        "position": "middle"
      },
      "glazing": "double",
      "sills": {
        "inner": null,
        "outer": null
      },
      "shading": []
    },
    {
      "id": "type-7",
      "name": "Entrance door",
      "kind": "door",
      "width": 0.9,
      "sill": 0,
      "top": 2.1,
      "leaves": [
        {
          "operation": "side-hung",
          "hinge": "left",
          "opens": "in"
        }
      ],
      "frame": {
        "material": "wood",
        "colorInside": "#4a3426",
        "colorOutside": "#4a3426",
        "position": "middle"
      },
      "glazing": "double",
      "sills": {
        "inner": null,
        "outer": null
      },
      "shading": []
    }
  ],
  "floors": [
    {
      "id": "floor-1",
      "name": "Herringbone oak",
      "kind": "parquet",
      "material": {
        "sample": "oak"
      },
      "pattern": "herringbone",
      "tile": [0.6, 0.1],
      "joint": {
        "width": 0.001,
        "color": "#4a3b2e"
      },
      "direction": 0,
      "variation": 0.18,
      "finish": "satin"
    },
    {
      "id": "floor-2",
      "name": "Marble hexagons",
      "kind": "gres",
      "material": {
        "sample": "marble"
      },
      "pattern": "hexagons",
      "tile": [0.25, 0.25],
      "joint": {
        "width": 0.002,
        "color": "#e8e6e0"
      },
      "direction": 0,
      "variation": 0.08,
      "finish": "gloss"
    }
  ],
  "settings": {
    "kind": "flat",
    "walls": {
      "outer": 0.3,
      "inner": 0.1,
      "sources": {
        "outer": {
          "kind": "typed"
        },
        "inner": {
          "kind": "typed"
        }
      }
    },
    "toolTypes": {
      "door": "type-5",
      "window": "type-1",
      "french": "type-4"
    },
    "plates": {
      "switchHeight": 1.05,
      "socketHeight": 0.3,
      "sources": {
        "switchHeight": {
          "kind": "typed"
        },
        "socketHeight": {
          "kind": "typed"
        }
      }
    }
  },
  "setup": {
    "isFinished": true
  },
  "products": [
    {
      "id": "jal/low-tv-cabinet",
      "version": 1,
      "name": {
        "it": "Mobile TV basso in rovere",
        "en": "Low oak TV cabinet"
      },
      "category": "storage/cabinet",
      "tags": ["mobile tv", "tv cabinet", "rovere", "oak", "credenza"],
      "mount": "floor",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "number",
          "min": 0.6,
          "max": 4,
          "step": 0.01,
          "unit": "m",
          "default": 2.3
        },
        {
          "id": "depth",
          "name": {
            "it": "Profondità",
            "en": "Depth"
          },
          "kind": "number",
          "min": 0.25,
          "max": 0.6,
          "step": 0.01,
          "unit": "m",
          "default": 0.4
        },
        {
          "id": "height",
          "name": {
            "it": "Altezza",
            "en": "Height"
          },
          "kind": "number",
          "min": 0.2,
          "max": 0.8,
          "step": 0.01,
          "unit": "m",
          "default": 0.3
        },
        {
          "id": "doors",
          "name": {
            "it": "Ante a ribalta",
            "en": "Flap doors"
          },
          "kind": "number",
          "min": 1,
          "max": 6,
          "step": 1,
          "unit": "count",
          "default": 3
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "low-cabinet"
      },
      "size": {
        "w": "width",
        "h": "height",
        "d": "depth"
      },
      "source": "measured (owner, 30/09/2026): 230 × 40 × 30 cm, three flap doors on a recessed 2 cm plinth"
    },
    {
      "id": "sample/frame-tv-55",
      "version": 1,
      "name": {
        "it": "TV a cornice 55″",
        "en": "55″ frame TV"
      },
      "category": "electronics/tv",
      "tags": ["tv", "televisore", "television", "cornice", "frame", "55"],
      "mount": "wall",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "frame-tv"
      },
      "size": {
        "w": "1.2428",
        "h": "0.7136",
        "d": "0.0268"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common 55-inch frame TV with its magnetic bezel: 124.28 × 71.36 × 2.68 cm"
    },
    {
      "id": "sample/sofa-bed",
      "version": 1,
      "name": {
        "it": "Divano letto",
        "en": "Sofa bed"
      },
      "category": "furniture/sofa",
      "tags": ["divano", "sofa", "divano letto", "sofa bed", "couch", "tre posti", "three-seater"],
      "mount": "floor",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "choice",
          "choices": [
            {
              "id": "168",
              "name": {
                "it": "168 cm",
                "en": "168 cm"
              },
              "params": {
                "w": 1.68
              }
            },
            {
              "id": "188",
              "name": {
                "it": "188 cm",
                "en": "188 cm"
              },
              "params": {
                "w": 1.88
              }
            },
            {
              "id": "208",
              "name": {
                "it": "208 cm",
                "en": "208 cm"
              },
              "params": {
                "w": 2.08
              }
            }
          ],
          "default": "208"
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "sofa-bed"
      },
      "size": {
        "w": "width.w",
        "h": "0.97",
        "d": "0.96"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common three-seat sofa bed: 168, 188 or 208 × 96 × 97 cm"
    },
    {
      "id": "jal/glass-coffee-table",
      "version": 1,
      "name": {
        "it": "Tavolino in vetro fumé",
        "en": "Smoked glass coffee table"
      },
      "category": "furniture/table",
      "tags": ["tavolino", "coffee table", "vetro", "glass"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "glass-coffee-table"
      },
      "size": {
        "w": "0.5",
        "h": "0.45",
        "d": "0.5"
      },
      "source": "photo estimate: 50 × 50 × 45 cm, model not identified"
    },
    {
      "id": "sample/cube-shelving",
      "version": 1,
      "name": {
        "it": "Libreria a cubi",
        "en": "Cube shelving unit"
      },
      "category": "storage/shelving",
      "tags": ["libreria", "bookcase", "cubi", "cubes", "scaffale", "shelving"],
      "mount": "floor",
      "options": [
        {
          "id": "size",
          "name": {
            "it": "Misura",
            "en": "Size"
          },
          "kind": "choice",
          "choices": [
            {
              "id": "1x1",
              "name": {
                "it": "42×42",
                "en": "42×42"
              },
              "params": {
                "cols": 1,
                "rows": 1
              }
            },
            {
              "id": "1x2",
              "name": {
                "it": "42×77",
                "en": "42×77"
              },
              "params": {
                "cols": 1,
                "rows": 2
              }
            },
            {
              "id": "1x3",
              "name": {
                "it": "42×112",
                "en": "42×112"
              },
              "params": {
                "cols": 1,
                "rows": 3
              }
            },
            {
              "id": "1x4",
              "name": {
                "it": "42×147",
                "en": "42×147"
              },
              "params": {
                "cols": 1,
                "rows": 4
              }
            },
            {
              "id": "2x2",
              "name": {
                "it": "77×77",
                "en": "77×77"
              },
              "params": {
                "cols": 2,
                "rows": 2
              }
            },
            {
              "id": "2x4",
              "name": {
                "it": "77×147",
                "en": "77×147"
              },
              "params": {
                "cols": 2,
                "rows": 4
              }
            },
            {
              "id": "2x5",
              "name": {
                "it": "77×182",
                "en": "77×182"
              },
              "params": {
                "cols": 2,
                "rows": 5
              }
            },
            {
              "id": "4x4",
              "name": {
                "it": "147×147",
                "en": "147×147"
              },
              "params": {
                "cols": 4,
                "rows": 4
              }
            },
            {
              "id": "5x5",
              "name": {
                "it": "182×182",
                "en": "182×182"
              },
              "params": {
                "cols": 5,
                "rows": 5
              }
            }
          ],
          "default": "2x4"
        },
        {
          "id": "finish",
          "name": {
            "it": "Finitura",
            "en": "Finish"
          },
          "kind": "material",
          "materials": ["white", "black-brown", "white-oak"],
          "default": "white"
        },
        {
          "id": "inserts",
          "name": {
            "it": "Inserti per cella",
            "en": "Inserts per cell"
          },
          "kind": "slots",
          "count": "size.cols * size.rows",
          "choices": [
            {
              "id": "drawers",
              "name": {
                "it": "Due cassetti",
                "en": "Two drawers"
              }
            },
            {
              "id": "door",
              "name": {
                "it": "Anta",
                "en": "Door"
              }
            },
            {
              "id": "bottles",
              "name": {
                "it": "Divisorio per bottiglie",
                "en": "Bottle divider"
              }
            },
            {
              "id": "pegboard",
              "name": {
                "it": "Pannello forato",
                "en": "Pegboard"
              }
            },
            {
              "id": "cat",
              "name": {
                "it": "Cuccia per gatti",
                "en": "Cat house"
              }
            }
          ]
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "cube-shelving"
      },
      "size": {
        "w": "size.cols * 0.335 + (size.cols - 1) * 0.015 + 0.08",
        "h": "size.rows * 0.335 + (size.rows - 1) * 0.015 + 0.08",
        "d": "0.39"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common cube shelving unit: 33.5 cm cells, 1.5 cm dividers, 4 cm frame, 39 cm deep"
    },
    {
      "id": "jal/artificial-ficus",
      "version": 1,
      "name": {
        "it": "Ficus artificiale",
        "en": "Artificial ficus"
      },
      "category": "decor/plant",
      "tags": ["pianta", "plant", "ficus", "artificiale", "artificial"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "ficus"
      },
      "size": {
        "w": "0.64",
        "h": "1.5",
        "d": "0.64"
      },
      "source": "photo estimate: about 1.5 m with the pot (Ø 28 cm), the crown about 64 cm across"
    },
    {
      "id": "jal/rocking-chair",
      "version": 1,
      "name": {
        "it": "Sedia a dondolo in velluto",
        "en": "Velvet rocking chair"
      },
      "category": "furniture/chair",
      "tags": ["sedia a dondolo", "rocking chair", "poltrona", "armchair", "velluto"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "rocking-chair"
      },
      "size": {
        "w": "0.68",
        "h": "0.95",
        "d": "0.9"
      },
      "source": "photo estimate: about 68 × 90 × 95 cm (shaped like https://www.amazon.it/dp/B0FGWYN5T9)"
    },
    {
      "id": "jal/tall-rustic-cabinet",
      "version": 1,
      "name": {
        "it": "Armadietto alto in rovere rustico",
        "en": "Tall rustic oak cabinet"
      },
      "category": "storage/cabinet",
      "tags": ["armadietto", "cabinet", "rovere", "oak", "colonna"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "tall-cabinet"
      },
      "size": {
        "w": "0.4",
        "h": "1.9",
        "d": "0.45"
      },
      "clearances": [
        {
          "use": "doors",
          "side": "front",
          "depth": "0.4",
          "source": "its door's swing: as wide as the cabinet (a usual allowance, assumed until measured at home)"
        }
      ],
      "source": "photo estimate: 40 × 190 × 45 cm"
    },
    {
      "id": "jal/handmade-mdf-drawers",
      "version": 1,
      "name": {
        "it": "Cassettiera artigianale in MDF",
        "en": "Handmade MDF drawer unit"
      },
      "category": "storage/drawers",
      "tags": ["cassettiera", "drawers", "mdf", "artigianale", "handmade"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "mdf-drawers"
      },
      "size": {
        "w": "0.91",
        "h": "0.7",
        "d": "0.66"
      },
      "clearances": [
        {
          "use": "drawers",
          "side": "front",
          "depth": "0.55",
          "source": "drawers out to their stops: about the chest's depth less its back (a usual allowance, assumed until measured at home)"
        }
      ],
      "source": "measured (owner, 30/09/2026): 91 × 70 × 66 cm, drawers 11.5, 12, 13 and 21 cm under a 3 cm top"
    },
    {
      "id": "jal/glass-wall-cabinet",
      "version": 1,
      "name": {
        "it": "Pensile con anta in vetro",
        "en": "Glass-door wall cabinet"
      },
      "category": "storage/cabinet",
      "tags": ["pensile", "wall cabinet", "vetro", "glass"],
      "mount": "wall",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "wall-cabinet"
      },
      "size": {
        "w": "0.22",
        "h": "0.55",
        "d": "0.13"
      },
      "source": "photo estimate: 22 × 55 × 13 cm"
    },
    {
      "id": "jal/corner-shower-enclosure",
      "version": 1,
      "name": {
        "it": "Box doccia angolare scorrevole",
        "en": "Sliding corner shower enclosure"
      },
      "category": "bathroom/shower",
      "tags": ["box doccia", "shower enclosure", "doccia", "shower", "piatto doccia"],
      "mount": "floor",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "number",
          "min": 0.7,
          "max": 1.6,
          "step": 0.01,
          "unit": "m",
          "default": 1.2
        },
        {
          "id": "depth",
          "name": {
            "it": "Profondità",
            "en": "Depth"
          },
          "kind": "number",
          "min": 0.7,
          "max": 1.2,
          "step": 0.01,
          "unit": "m",
          "default": 0.8
        },
        {
          "id": "open",
          "name": {
            "it": "Lato aperto",
            "en": "Open end"
          },
          "kind": "choice",
          "choices": [
            {
              "id": "left",
              "name": {
                "it": "Sinistra",
                "en": "Left"
              }
            },
            {
              "id": "right",
              "name": {
                "it": "Destra",
                "en": "Right"
              }
            }
          ],
          "default": "left"
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "shower-enclosure"
      },
      "size": {
        "w": "width",
        "h": "2.0125",
        "d": "depth"
      },
      "source": "photo estimate: 5 cm tray, glass to 2 m"
    },
    {
      "id": "sample/back-to-wall-bidet",
      "version": 1,
      "name": {
        "it": "Bidet filo muro",
        "en": "Back-to-wall bidet"
      },
      "category": "bathroom/sanitary",
      "tags": ["bidet", "sanitari", "filo muro", "back to wall"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "back-to-wall-bidet"
      },
      "size": {
        "w": "0.36",
        "h": "0.4",
        "d": "0.55"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common back-to-wall bidet: 36 × 55 × 40 cm"
    },
    {
      "id": "sample/back-to-wall-wc",
      "version": 1,
      "name": {
        "it": "WC filo muro",
        "en": "Back-to-wall WC"
      },
      "category": "bathroom/sanitary",
      "tags": ["wc", "vaso", "toilet", "sanitari", "filo muro", "back to wall"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "back-to-wall-wc"
      },
      "size": {
        "w": "0.36",
        "h": "0.4",
        "d": "0.55"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common back-to-wall WC: 36 × 55 × 40 cm"
    },
    {
      "id": "jal/two-drawer-vanity",
      "version": 1,
      "name": {
        "it": "Mobile bagno sospeso a due cassetti",
        "en": "Suspended two-drawer vanity"
      },
      "category": "bathroom/furniture",
      "tags": ["mobile bagno", "vanity", "sospeso", "suspended", "cassetti"],
      "mount": "wall",
      "options": [
        {
          "id": "bottom",
          "name": {
            "it": "Altezza da terra",
            "en": "Height from the floor"
          },
          "kind": "number",
          "min": 0,
          "max": 1,
          "step": 0.01,
          "unit": "m",
          "default": 0.27
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "vanity"
      },
      "size": {
        "w": "1.2",
        "h": "bottom + 0.58",
        "d": "0.5"
      },
      "clearances": [
        {
          "use": "drawers",
          "side": "front",
          "depth": "0.45",
          "source": "drawers out to their stops: about the vanity's depth less its back (a usual allowance, assumed until measured at home)"
        }
      ],
      "source": "photo estimate: 120 × 50 cm, two 27 cm drawers under a 4 cm top, the top at 85 cm"
    },
    {
      "id": "jal/frosted-border-mirror",
      "version": 1,
      "name": {
        "it": "Specchio con bordo satinato",
        "en": "Mirror with frosted border"
      },
      "category": "bathroom/furniture",
      "tags": ["specchio", "mirror", "bagno", "bathroom"],
      "mount": "wall",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "number",
          "min": 0.3,
          "max": 2,
          "step": 0.01,
          "unit": "m",
          "default": 1.2
        },
        {
          "id": "height",
          "name": {
            "it": "Altezza",
            "en": "Height"
          },
          "kind": "number",
          "min": 0.3,
          "max": 1.5,
          "step": 0.01,
          "unit": "m",
          "default": 0.75
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "bath-mirror"
      },
      "size": {
        "w": "width",
        "h": "height",
        "d": "0.0175"
      },
      "source": "photo estimate: rounded corners, 3.5 cm frosted border, 1.2 cm off the wall"
    },
    {
      "id": "jal/towel-ladder-radiator",
      "version": 1,
      "name": {
        "it": "Scaldasalviette a scala",
        "en": "Towel ladder radiator"
      },
      "category": "heating/radiator",
      "tags": ["scaldasalviette", "towel warmer", "radiatore", "radiator", "bagno"],
      "mount": "wall",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "number",
          "min": 0.3,
          "max": 0.8,
          "step": 0.01,
          "unit": "m",
          "default": 0.5
        },
        {
          "id": "height",
          "name": {
            "it": "Altezza",
            "en": "Height"
          },
          "kind": "number",
          "min": 0.4,
          "max": 1.8,
          "step": 0.01,
          "unit": "m",
          "default": 0.8
        },
        {
          "id": "bottom",
          "name": {
            "it": "Altezza da terra",
            "en": "Height from the floor"
          },
          "kind": "number",
          "min": 0,
          "max": 1.5,
          "step": 0.01,
          "unit": "m",
          "default": 0.8
        },
        {
          "id": "bars",
          "name": {
            "it": "Barre",
            "en": "Bars"
          },
          "kind": "number",
          "min": 4,
          "max": 12,
          "step": 1,
          "unit": "count",
          "default": 8
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "towel-ladder"
      },
      "size": {
        "w": "width + 0.03",
        "h": "bottom + height",
        "d": "0.065"
      },
      "source": "photo estimate: round uprights and rails, 5 cm off the wall"
    },
    {
      "id": "jal/double-bed",
      "version": 1,
      "name": {
        "it": "Letto matrimoniale",
        "en": "Double bed"
      },
      "category": "furniture/bed",
      "tags": ["letto", "bed", "matrimoniale", "double"],
      "mount": "floor",
      "options": [
        {
          "id": "mattress",
          "name": {
            "it": "Materasso",
            "en": "Mattress"
          },
          "kind": "choice",
          "choices": [
            {
              "id": "double",
              "name": {
                "it": "160 × 190",
                "en": "160 × 190"
              },
              "params": {
                "w": 1.6,
                "l": 1.9
              }
            },
            {
              "id": "queen",
              "name": {
                "it": "160 × 200",
                "en": "160 × 200"
              },
              "params": {
                "w": 1.6,
                "l": 2
              }
            },
            {
              "id": "king",
              "name": {
                "it": "180 × 200",
                "en": "180 × 200"
              },
              "params": {
                "w": 1.8,
                "l": 2
              }
            }
          ],
          "default": "queen"
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "double-bed"
      },
      "size": {
        "w": "mattress.w + 0.1",
        "h": "0.57",
        "d": "mattress.l + 0.1"
      },
      "clearances": [
        {
          "use": "access",
          "side": "left",
          "depth": "0.6",
          "source": "room to get in on each side (a usual allowance, assumed until measured at home)"
        },
        {
          "use": "access",
          "side": "right",
          "depth": "0.6",
          "source": "room to get in on each side (a usual allowance, assumed until measured at home)"
        }
      ],
      "source": "photo estimate: a frame 10 cm larger than the mattress and 30 cm high, mattress 20 cm, pillows on top (57 cm in all)"
    },
    {
      "id": "sample/narrow-drawers",
      "version": 1,
      "name": {
        "it": "Cassettiera stretta",
        "en": "Narrow drawer unit"
      },
      "category": "storage/drawers",
      "tags": ["cassettiera", "drawers", "cassetti", "drawer unit"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "narrow-drawers"
      },
      "size": {
        "w": "0.36",
        "h": "0.7",
        "d": "0.58"
      },
      "clearances": [
        {
          "use": "drawers",
          "side": "front",
          "depth": "0.5",
          "source": "drawers out to their stops: about the unit's depth less its back (a usual allowance, assumed until measured at home)"
        }
      ],
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common narrow drawer unit: 36 × 58 × 70 cm, 5 drawers"
    },
    {
      "id": "jal/sliding-wardrobe",
      "version": 1,
      "name": {
        "it": "Armadio ad ante scorrevoli",
        "en": "Sliding-door wardrobe"
      },
      "category": "storage/wardrobe",
      "tags": ["armadio", "wardrobe", "scorrevole", "sliding", "guardaroba"],
      "mount": "floor",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "number",
          "min": 1,
          "max": 4,
          "step": 0.01,
          "unit": "m",
          "default": 2.4
        },
        {
          "id": "height",
          "name": {
            "it": "Altezza",
            "en": "Height"
          },
          "kind": "number",
          "min": 2,
          "max": 2.8,
          "step": 0.01,
          "unit": "m",
          "default": 2.55
        },
        {
          "id": "depth",
          "name": {
            "it": "Profondità",
            "en": "Depth"
          },
          "kind": "number",
          "min": 0.4,
          "max": 0.7,
          "step": 0.01,
          "unit": "m",
          "default": 0.6
        },
        {
          "id": "doors",
          "name": {
            "it": "Ante",
            "en": "Doors"
          },
          "kind": "number",
          "min": 2,
          "max": 4,
          "step": 1,
          "unit": "count",
          "default": 3
        },
        {
          "id": "bandBottom",
          "name": {
            "it": "Fascia in rovere: altezza da terra",
            "en": "Oak band: height from the floor"
          },
          "kind": "number",
          "min": 0,
          "max": 2,
          "step": 0.01,
          "unit": "m",
          "default": 0.95
        },
        {
          "id": "bandHeight",
          "name": {
            "it": "Fascia in rovere: altezza",
            "en": "Oak band: height"
          },
          "kind": "number",
          "min": 0.05,
          "max": 0.4,
          "step": 0.01,
          "unit": "m",
          "default": 0.16
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "sliding-wardrobe"
      },
      "size": {
        "w": "width",
        "h": "height",
        "d": "depth"
      },
      "clearances": [
        {
          "use": "access",
          "side": "front",
          "depth": "0.6",
          "source": "room to stand and reach in: sliding doors need no swing (a usual allowance, assumed until measured at home)"
        }
      ],
      "source": "photo estimate: 255 cm high, 60 cm deep, three doors, the oak band 16 cm high at 95 cm"
    },
    {
      "id": "sample/video-door-phone",
      "version": 1,
      "name": {
        "it": "Videocitofono",
        "en": "Video door phone"
      },
      "category": "electronics/intercom",
      "tags": ["videocitofono", "citofono", "door phone", "intercom"],
      "mount": "wall",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "video-door-phone"
      },
      "size": {
        "w": "0.124",
        "h": "0.22",
        "d": "0.0205"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common hands-free video door phone: 12.4 × 22 cm, 2.05 cm deep"
    },
    {
      "id": "sample/artificial-bamboo",
      "version": 1,
      "name": {
        "it": "Bambù finto 100 cm",
        "en": "Artificial bamboo 100 cm"
      },
      "category": "decor/plant",
      "tags": ["pianta", "plant", "bambù", "bamboo", "finta", "artificial"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "bamboo-plant"
      },
      "size": {
        "w": "0.18",
        "h": "1",
        "d": "0.18"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common artificial bamboo in its pot: 100 cm high, 18 cm across"
    },
    {
      "id": "sample/front-load-washer",
      "version": 1,
      "name": {
        "it": "Lavatrice a carica frontale",
        "en": "Front-loading washing machine"
      },
      "category": "appliances/laundry",
      "tags": ["lavatrice", "washing machine", "washer", "bucato", "laundry"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "front-loader-washer"
      },
      "size": {
        "w": "0.6",
        "h": "0.85",
        "d": "0.56"
      },
      "clearances": [
        {
          "use": "appliance",
          "side": "front",
          "depth": "0.6",
          "source": "the porthole door open and room to load: about 60 cm (a usual allowance, assumed until measured at home)"
        }
      ],
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common front-loading washing machine: 60 × 85 × 56 cm, door included"
    },
    {
      "id": "sample/heat-pump-dryer",
      "version": 1,
      "name": {
        "it": "Asciugatrice a pompa di calore",
        "en": "Heat-pump dryer"
      },
      "category": "appliances/laundry",
      "tags": ["asciugatrice", "dryer", "tumble dryer", "bucato", "laundry"],
      "mount": "floor",
      "options": [],
      "geometry": {
        "kind": "builtin",
        "generator": "front-loader-dryer"
      },
      "size": {
        "w": "0.6",
        "h": "0.85",
        "d": "0.69"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common heat-pump dryer: 60 × 85 × 69 cm, door included"
    },
    {
      "id": "jal/slatted-laundry-cabinet",
      "version": 1,
      "name": {
        "it": "Mobile portabiancheria a doghe",
        "en": "Slatted laundry cabinet"
      },
      "category": "storage/cabinet",
      "tags": ["portabiancheria", "laundry", "doghe", "slatted", "mobiletto"],
      "mount": "floor",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "number",
          "min": 0.3,
          "max": 0.6,
          "step": 0.01,
          "unit": "m",
          "default": 0.4
        },
        {
          "id": "depth",
          "name": {
            "it": "Profondità",
            "en": "Depth"
          },
          "kind": "number",
          "min": 0.25,
          "max": 0.45,
          "step": 0.01,
          "unit": "m",
          "default": 0.33
        },
        {
          "id": "height",
          "name": {
            "it": "Altezza",
            "en": "Height"
          },
          "kind": "number",
          "min": 0.4,
          "max": 0.9,
          "step": 0.01,
          "unit": "m",
          "default": 0.57
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "slatted-cabinet"
      },
      "size": {
        "w": "width + 0.01",
        "h": "height",
        "d": "depth + 0.01"
      },
      "source": "photo estimate: about 40 × 33 × 57 cm, the lid 1 cm wider and deeper"
    },
    {
      "id": "sample/standing-desk-frame",
      "version": 1,
      "name": {
        "it": "Telaio scrivania regolabile",
        "en": "Height-adjustable desk frame"
      },
      "category": "furniture/desk",
      "tags": ["scrivania", "desk", "standing desk", "regolabile", "height adjustable"],
      "mount": "floor",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "number",
          "min": 1.1,
          "max": 1.9,
          "step": 0.01,
          "unit": "m",
          "default": 1.49
        },
        {
          "id": "height",
          "name": {
            "it": "Altezza",
            "en": "Height"
          },
          "kind": "number",
          "min": 0.605,
          "max": 1.255,
          "step": 0.001,
          "unit": "m",
          "default": 0.702
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "standing-desk-frame"
      },
      "size": {
        "w": "width",
        "h": "height",
        "d": "0.7"
      },
      "clearances": [
        {
          "use": "seat",
          "side": "front",
          "depth": "0.8",
          "source": "a chair at the desk and pushed back: 75–100 cm in front of a desk (a usual allowance, assumed until measured at home)"
        }
      ],
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common four-leg height-adjustable frame: 110–190 cm wide, 60.5–125.5 cm high, 70 cm deep"
    },
    {
      "id": "sample/bookcase",
      "version": 1,
      "name": {
        "it": "Libreria",
        "en": "Bookcase"
      },
      "category": "storage/shelving",
      "tags": ["libreria", "bookcase", "scaffale", "shelves"],
      "mount": "floor",
      "options": [
        {
          "id": "width",
          "name": {
            "it": "Larghezza",
            "en": "Width"
          },
          "kind": "choice",
          "choices": [
            {
              "id": "40",
              "name": {
                "it": "40 cm",
                "en": "40 cm"
              },
              "params": {
                "w": 0.4
              }
            },
            {
              "id": "80",
              "name": {
                "it": "80 cm",
                "en": "80 cm"
              },
              "params": {
                "w": 0.8
              }
            }
          ],
          "default": "80"
        },
        {
          "id": "height",
          "name": {
            "it": "Altezza",
            "en": "Height"
          },
          "kind": "choice",
          "choices": [
            {
              "id": "106",
              "name": {
                "it": "106 cm",
                "en": "106 cm"
              },
              "params": {
                "h": 1.06,
                "canTop": 0
              }
            },
            {
              "id": "202",
              "name": {
                "it": "202 cm",
                "en": "202 cm"
              },
              "params": {
                "h": 2.02,
                "canTop": 1
              }
            }
          ],
          "default": "202"
        },
        {
          "id": "depth",
          "name": {
            "it": "Profondità",
            "en": "Depth"
          },
          "visibleIf": {
            "option": "width",
            "in": ["80"]
          },
          "kind": "choice",
          "choices": [
            {
              "id": "28",
              "name": {
                "it": "28 cm",
                "en": "28 cm"
              },
              "params": {
                "d": 0.28
              }
            },
            {
              "id": "40",
              "name": {
                "it": "40 cm",
                "en": "40 cm"
              },
              "params": {
                "d": 0.4
              }
            }
          ],
          "default": "28"
        },
        {
          "id": "top",
          "name": {
            "it": "Elemento top (35 cm)",
            "en": "Top element (35 cm)"
          },
          "visibleIf": {
            "option": "height",
            "in": ["202"]
          },
          "kind": "toggle",
          "default": false
        }
      ],
      "geometry": {
        "kind": "builtin",
        "generator": "bookcase"
      },
      "size": {
        "w": "width.w",
        "h": "height.h + top * height.canTop * 0.35",
        "d": "depth.d"
      },
      "source": "sample for the demos, without a maker's name (owner's decision, 07/10/2026); sizes of a common bookcase: 40 or 80 cm wide, 106 or 202 cm high, 28 or 40 cm deep, a 35 cm top element"
    }
  ],
  "inventory": [
    {
      "id": "piece-1",
      "product": {
        "id": "jal/low-tv-cabinet",
        "version": 1
      },
      "options": {
        "width": 2.3,
        "depth": 0.4,
        "height": 0.3,
        "doors": 3
      },
      "room": "living",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [310, 35],
        "rotation": 0
      }
    },
    {
      "id": "piece-2",
      "product": {
        "id": "sample/frame-tv-55",
        "version": 1
      },
      "options": {},
      "room": "living",
      "placement": {
        "kind": "wall",
        "plan": "plan",
        "wall": "wall-1",
        "side": "right",
        "along": 310,
        "y0": 1.143,
        "gap": 0
      }
    },
    {
      "id": "piece-3",
      "product": {
        "id": "sample/sofa-bed",
        "version": 1
      },
      "options": {
        "width": "208"
      },
      "room": "living",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [310, 280],
        "rotation": 180
      }
    },
    {
      "id": "piece-4",
      "product": {
        "id": "jal/glass-coffee-table",
        "version": 1
      },
      "options": {},
      "room": "living",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [310, 165],
        "rotation": 0
      }
    },
    {
      "id": "piece-5",
      "product": {
        "id": "sample/cube-shelving",
        "version": 1
      },
      "options": {
        "size": "2x4",
        "finish": "white",
        "inserts": []
      },
      "room": "living",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [675.5, 210],
        "rotation": 90
      }
    },
    {
      "id": "piece-6",
      "product": {
        "id": "jal/artificial-ficus",
        "version": 1
      },
      "options": {},
      "room": "living",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [650, 62],
        "rotation": 0
      }
    },
    {
      "id": "piece-7",
      "product": {
        "id": "jal/rocking-chair",
        "version": 1
      },
      "options": {},
      "room": "living",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [-55, 250],
        "rotation": 270
      }
    },
    {
      "id": "piece-8",
      "product": {
        "id": "jal/tall-rustic-cabinet",
        "version": 1
      },
      "options": {},
      "room": "kitchen",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [422.5, 545],
        "rotation": 90
      }
    },
    {
      "id": "piece-9",
      "product": {
        "id": "jal/tall-rustic-cabinet",
        "version": 1
      },
      "options": {},
      "room": "kitchen",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [422.5, 585],
        "rotation": 90
      }
    },
    {
      "id": "piece-10",
      "product": {
        "id": "jal/tall-rustic-cabinet",
        "version": 1
      },
      "options": {},
      "room": "kitchen",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [422.5, 625],
        "rotation": 90
      }
    },
    {
      "id": "piece-11",
      "product": {
        "id": "jal/handmade-mdf-drawers",
        "version": 1
      },
      "options": {},
      "room": "kitchen",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [412, 730],
        "rotation": 90
      }
    },
    {
      "id": "piece-12",
      "product": {
        "id": "jal/glass-wall-cabinet",
        "version": 1
      },
      "options": {},
      "room": "kitchen",
      "placement": {
        "kind": "wall",
        "plan": "plan",
        "wall": "wall-21",
        "side": "right",
        "along": 205,
        "y0": 1.225,
        "gap": 0
      }
    },
    {
      "id": "piece-13",
      "product": {
        "id": "jal/glass-wall-cabinet",
        "version": 1
      },
      "options": {},
      "room": "kitchen",
      "placement": {
        "kind": "wall",
        "plan": "plan",
        "wall": "wall-21",
        "side": "right",
        "along": 255,
        "y0": 1.225,
        "gap": 0
      }
    },
    {
      "id": "piece-14",
      "product": {
        "id": "jal/corner-shower-enclosure",
        "version": 1
      },
      "options": {
        "width": 1.2,
        "depth": 0.8,
        "open": "left"
      },
      "room": "bath",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [515, 545],
        "rotation": 0
      }
    },
    {
      "id": "piece-15",
      "product": {
        "id": "sample/back-to-wall-bidet",
        "version": 1
      },
      "options": {},
      "room": "bath",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [482.5, 640],
        "rotation": -90
      }
    },
    {
      "id": "piece-16",
      "product": {
        "id": "sample/back-to-wall-wc",
        "version": 1
      },
      "options": {},
      "room": "bath",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [482.5, 710],
        "rotation": -90
      }
    },
    {
      "id": "piece-17",
      "product": {
        "id": "jal/two-drawer-vanity",
        "version": 1
      },
      "options": {
        "bottom": 0.27
      },
      "room": "bath",
      "placement": {
        "kind": "wall",
        "plan": "plan",
        "wall": "wall-22",
        "side": "right",
        "along": 200,
        "y0": 0,
        "gap": 0
      }
    },
    {
      "id": "piece-18",
      "product": {
        "id": "jal/frosted-border-mirror",
        "version": 1
      },
      "options": {
        "width": 1.2,
        "height": 0.75
      },
      "room": "bath",
      "placement": {
        "kind": "wall",
        "plan": "plan",
        "wall": "wall-22",
        "side": "right",
        "along": 200,
        "y0": 1.1,
        "gap": 0
      }
    },
    {
      "id": "piece-19",
      "product": {
        "id": "jal/towel-ladder-radiator",
        "version": 1
      },
      "options": {
        "width": 0.5,
        "height": 0.8,
        "bottom": 0.8,
        "bars": 8
      },
      "room": "bath",
      "placement": {
        "kind": "wall",
        "plan": "plan",
        "wall": "wall-8",
        "side": "right",
        "along": 200,
        "y0": 0.2,
        "gap": 0
      }
    },
    {
      "id": "piece-20",
      "product": {
        "id": "jal/double-bed",
        "version": 1
      },
      "options": {
        "mattress": "queen"
      },
      "room": "bedroom",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [1080, 200],
        "rotation": 90
      }
    },
    {
      "id": "piece-21",
      "product": {
        "id": "sample/narrow-drawers",
        "version": 1
      },
      "options": {},
      "room": "bedroom",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [855, 44],
        "rotation": 0
      }
    },
    {
      "id": "piece-22",
      "product": {
        "id": "jal/sliding-wardrobe",
        "version": 1
      },
      "options": {
        "width": 2.4,
        "height": 2.55,
        "depth": 0.6,
        "doors": 3,
        "bandBottom": 0.95,
        "bandHeight": 0.16
      },
      "room": "bedroom",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [735, 175],
        "rotation": -90
      }
    },
    {
      "id": "piece-23",
      "product": {
        "id": "sample/video-door-phone",
        "version": 1
      },
      "options": {},
      "room": "hall",
      "placement": {
        "kind": "wall",
        "plan": "plan",
        "wall": "wall-22",
        "side": "left",
        "along": 240,
        "y0": 1.39,
        "gap": 0
      }
    },
    {
      "id": "piece-24",
      "product": {
        "id": "jal/tall-rustic-cabinet",
        "version": 1
      },
      "options": {},
      "room": "hall",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [922.5, 750],
        "rotation": 90
      }
    },
    {
      "id": "piece-25",
      "product": {
        "id": "sample/artificial-bamboo",
        "version": 1
      },
      "options": {},
      "room": "hall",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [1170, 430],
        "rotation": 0
      }
    },
    {
      "id": "piece-26",
      "product": {
        "id": "sample/front-load-washer",
        "version": 1
      },
      "options": {},
      "room": "laundry",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [1157, 740],
        "rotation": 90
      }
    },
    {
      "id": "piece-27",
      "product": {
        "id": "sample/heat-pump-dryer",
        "version": 1
      },
      "options": {},
      "room": "laundry",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [1150.5, 665],
        "rotation": 90
      }
    },
    {
      "id": "piece-28",
      "product": {
        "id": "jal/slatted-laundry-cabinet",
        "version": 1
      },
      "options": {
        "width": 0.4,
        "depth": 0.33,
        "height": 0.57
      },
      "room": "laundry",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [1010, 768],
        "rotation": 180
      }
    },
    {
      "id": "piece-29",
      "product": {
        "id": "jal/rocking-chair",
        "version": 1
      },
      "options": {},
      "room": "balcony",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [330, 875],
        "rotation": 0
      }
    },
    {
      "id": "piece-30",
      "product": {
        "id": "sample/artificial-bamboo",
        "version": 1
      },
      "options": {},
      "room": "balcony",
      "placement": {
        "kind": "floor",
        "plan": "plan",
        "at": [95, 905],
        "rotation": 0
      }
    },
    {
      "id": "piece-31",
      "product": {
        "id": "sample/standing-desk-frame",
        "version": 1
      },
      "options": {
        "width": 1.49,
        "height": 0.702
      },
      "room": "mezzanine",
      "placement": {
        "kind": "floor",
        "plan": "plan-1",
        "at": [225, 750],
        "rotation": -180
      }
    },
    {
      "id": "piece-32",
      "product": {
        "id": "sample/bookcase",
        "version": 1
      },
      "options": {
        "width": "80",
        "height": "202",
        "depth": "28",
        "top": false
      },
      "room": "mezzanine",
      "placement": {
        "kind": "floor",
        "plan": "plan-1",
        "at": [29, 560],
        "rotation": -90
      }
    },
    {
      "id": "piece-33",
      "product": {
        "id": "sample/bookcase",
        "version": 1
      },
      "options": {
        "width": "80",
        "height": "202",
        "depth": "28",
        "top": false
      },
      "room": "mezzanine",
      "placement": {
        "kind": "floor",
        "plan": "plan-1",
        "at": [29, 640],
        "rotation": -90
      }
    },
    {
      "id": "piece-34",
      "product": {
        "id": "sample/sofa-bed",
        "version": 1
      },
      "options": {
        "width": "208"
      },
      "room": "mezzanine",
      "placement": {
        "kind": "floor",
        "plan": "plan-1",
        "at": [397, 640],
        "rotation": 90
      }
    }
  ]
}
