{
  "schema_version": 1,
  "project": "Casa G",
  "source_revision": "2026-10-12-E15",
  "stage": "logical network / design inputs",
  "sources": [
    {
      "path": "data\\bim\\program_v3e.json",
      "sha256": "d950d9c94882dc3795195a00523f5c882af000dcec258bd36af1b1ce8ab5a910"
    },
    {
      "path": "data\\site\\r11\\model\\manifest.json",
      "sha256": "2417c0a58d21b02f7a2c64a12c173ff9bd6571e453d0630128461da6a9651bf2"
    },
    {
      "path": "data\\site\\r11\\model\\Casa_Sobreposta_R11_E.ifc",
      "sha256": "4fb989a1e4ea21490ad9b6e525cd9d402f7ee2b089e57da1ed14e93682e75e6d"
    },
    {
      "path": "data\\mep\\wet-core-brief.json",
      "sha256": "f16ffff6ae282b541b4971220a21e868f2d26262ffd7fa8f2635e17f4b94b9b7"
    },
    {
      "path": "data\\mep\\utility-evidence.json",
      "sha256": "84d14b667c100e7fe141d41c2d698cf6b76e27b5c0ab209fbe0152b82523e675"
    }
  ],
  "coordinates": {
    "unit": "m",
    "frame": "building-local",
    "ground_ffl": 0,
    "upper_ffl": 2.82,
    "source_local_to_site_matrix": [
      [
        0.9890158633619168,
        0.14780941112961063,
        0.0,
        14.926095294435195
      ],
      [
        -0.14780941112961063,
        0.9890158633619168,
        0.0,
        9.20549206831904
      ],
      [
        0.0,
        -0.0,
        1.0,
        14.65
      ],
      [
        0.0,
        0.0,
        0.0,
        1.0
      ]
    ],
    "note": "Footprints locate fixture groups, not physical connection points. IFC export uses this local frame."
  },
  "systems": {
    "cold": {
      "label": "Cold water",
      "ifc_type": "DOMESTICCOLDWATER",
      "color": "#2563b5"
    },
    "hot": {
      "label": "Hot water",
      "ifc_type": "DOMESTICHOTWATER",
      "color": "#bf442f"
    },
    "waste": {
      "label": "Wastewater",
      "ifc_type": "SEWAGE",
      "color": "#765738"
    },
    "rising_main": {
      "label": "Pumped wastewater",
      "ifc_type": "SEWAGE",
      "color": "#765a98"
    }
  },
  "fixtures": [
    {
      "id": "bath-basin",
      "label": "Lavatório",
      "type": "basin",
      "floor": 0,
      "rect_m": [
        9.65,
        6.4,
        10.25,
        6.88
      ],
      "space_candidates": [
        "bath"
      ],
      "reference_xyz_m": [
        9.95,
        6.640000000000001,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "WASHHANDBASIN",
      "source": {
        "json_pointer": "/modules/10",
        "module_id": "bath-basin",
        "manifest_plan_id": "bath-basin",
        "related_ifc_guids": [
          "3DrneJnvnUcQNI2f04IoD6"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "bath-shower",
      "label": "Duche",
      "type": "shower",
      "floor": 0,
      "rect_m": [
        8.65,
        5.98,
        9.55,
        6.88
      ],
      "space_candidates": [
        "bath"
      ],
      "reference_xyz_m": [
        9.100000000000001,
        6.43,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "SHOWER",
      "source": {
        "json_pointer": "/modules/8",
        "module_id": "bath-shower",
        "manifest_plan_id": "bath-shower",
        "related_ifc_guids": [
          "1jU3CiACvVWvtGXWk1wW4p"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "bath-wc",
      "label": "Sanita",
      "type": "toilet",
      "floor": 0,
      "rect_m": [
        8.65,
        4.75,
        9.3,
        5.15
      ],
      "space_candidates": [
        "bath"
      ],
      "reference_xyz_m": [
        8.975000000000001,
        4.95,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "WCSEAT",
      "source": {
        "json_pointer": "/modules/9",
        "module_id": "bath-wc",
        "manifest_plan_id": "bath-wc",
        "related_ifc_guids": [
          "3FlCkLKaXU0QWFXZaUuwEF"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "ens-basin",
      "label": "Lav.",
      "type": "basin",
      "floor": 0,
      "rect_m": [
        10.75,
        3.4,
        11.35,
        3.85
      ],
      "space_candidates": [
        "ensuite"
      ],
      "reference_xyz_m": [
        11.05,
        3.625,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "WASHHANDBASIN",
      "source": {
        "json_pointer": "/modules/15",
        "module_id": "ens-basin",
        "manifest_plan_id": "ens-basin",
        "related_ifc_guids": [
          "1P2gtRZRXT8wY0qYR2iqIf"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "ens-shower",
      "label": "Duche",
      "type": "shower",
      "floor": 0,
      "rect_m": [
        10.55,
        5.98,
        11.95,
        6.88
      ],
      "space_candidates": [
        "ensuite"
      ],
      "reference_xyz_m": [
        11.25,
        6.43,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "SHOWER",
      "source": {
        "json_pointer": "/modules/13",
        "module_id": "ens-shower",
        "manifest_plan_id": "ens-shower",
        "related_ifc_guids": [
          "26EVGUiGzVGguwmOHyrZI1"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "ens-wc",
      "label": "Sanita",
      "type": "toilet",
      "floor": 0,
      "rect_m": [
        10.55,
        4.6,
        11.2,
        5.0
      ],
      "space_candidates": [
        "ensuite"
      ],
      "reference_xyz_m": [
        10.875,
        4.8,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "WCSEAT",
      "source": {
        "json_pointer": "/modules/14",
        "module_id": "ens-wc",
        "manifest_plan_id": "ens-wc",
        "related_ifc_guids": [
          "0COlTBVEvVMBTsMR9SWckh"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "island-2",
      "label": "Kitchen double sink",
      "type": "sink",
      "floor": 0,
      "rect_m": [
        5.7,
        2.55,
        6.8,
        3.45
      ],
      "space_candidates": [
        "kitchen"
      ],
      "reference_xyz_m": [
        6.25,
        3.0,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "SINK",
      "source": {
        "json_pointer": "/modules/3",
        "module_id": "island-2",
        "manifest_plan_id": "island",
        "related_ifc_guids": [
          "0fKpFZ25TVsBZxTf72vmZr",
          "0kD7omDDXNredUh9tZ$LaN",
          "1cdFvbLljUEB8EOgXaLiXT",
          "1qf_jtRwzVHQsMsrLcS3e6",
          "2HQbgaAILVSAsKwgcwWv6m",
          "3Bn8OiyJvNsgEtXF_jju$j",
          "3jftxcQm9RpQXHHqSnyCPL"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "One shared service group for the two bowls shown by build_model_e.py; individual outlets unresolved."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "island-3",
      "label": "Dishwasher (inferred)",
      "type": "dishwasher",
      "floor": 0,
      "rect_m": [
        5.7,
        1.65,
        6.8,
        2.55
      ],
      "space_candidates": [
        "kitchen"
      ],
      "reference_xyz_m": [
        6.25,
        2.0999999999999996,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "inferred",
      "services": [
        "cold",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcElectricAppliance",
      "predefined": "DISHWASHER",
      "source": {
        "json_pointer": "/modules/4",
        "module_id": "island-3",
        "manifest_plan_id": "island",
        "related_ifc_guids": [
          "0fKpFZ25TVsBZxTf72vmZr",
          "0kD7omDDXNredUh9tZ$LaN",
          "1cdFvbLljUEB8EOgXaLiXT",
          "1qf_jtRwzVHQsMsrLcS3e6",
          "2HQbgaAILVSAsKwgcwWv6m",
          "3Bn8OiyJvNsgEtXF_jju$j",
          "3jftxcQm9RpQXHHqSnyCPL"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "The parent island note mentions a dishwasher below this drainer module. No separate appliance has been modelled."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "laundry-top",
      "label": "Utility sink",
      "type": "sink",
      "floor": 0,
      "rect_m": [
        8.7,
        2.13,
        9.3,
        2.7
      ],
      "space_candidates": [
        "laundry"
      ],
      "reference_xyz_m": [
        9.0,
        2.415,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "SINK",
      "source": {
        "json_pointer": "/modules/7",
        "module_id": "laundry-top",
        "manifest_plan_id": "laundry-top",
        "related_ifc_guids": [
          "2$shpZ_kzSX8sTfudEy4lt",
          "2DOv5mwiXVWvcEIg8p7h5D",
          "39dpCHpk9QEApqvgnf1v4H",
          "3FLV2i005M0RUSt6ZPOs_M"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit utility tank in the module label and build_model_e.py."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "upb-basin",
      "label": "Lavatório",
      "type": "basin",
      "floor": 1,
      "rect_m": [
        11.5,
        5.05,
        11.95,
        5.85
      ],
      "space_candidates": [
        "bath-up"
      ],
      "reference_xyz_m": [
        11.725,
        5.449999999999999,
        2.82
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "WASHHANDBASIN",
      "source": {
        "json_pointer": "/modules/22",
        "module_id": "upb-basin",
        "manifest_plan_id": "upb-basin",
        "related_ifc_guids": [
          "1NraI_$nTJQOGKOuXHOKGA"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "upb-shower",
      "label": "Duche",
      "type": "shower",
      "floor": 1,
      "rect_m": [
        9.75,
        5.98,
        10.65,
        6.88
      ],
      "space_candidates": [
        "bath-up"
      ],
      "reference_xyz_m": [
        10.2,
        6.43,
        2.82
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "SHOWER",
      "source": {
        "json_pointer": "/modules/20",
        "module_id": "upb-shower",
        "manifest_plan_id": "upb-shower",
        "related_ifc_guids": [
          "2mc9KWNi5VovnM13Vkm5BR"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "upb-wc",
      "label": "Sanita",
      "type": "toilet",
      "floor": 1,
      "rect_m": [
        11.1,
        6.23,
        11.5,
        6.88
      ],
      "space_candidates": [
        "bath-up"
      ],
      "reference_xyz_m": [
        11.3,
        6.555,
        2.82
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "WCSEAT",
      "source": {
        "json_pointer": "/modules/21",
        "module_id": "upb-wc",
        "manifest_plan_id": "upb-wc",
        "related_ifc_guids": [
          "2l19rVKeLUA9LdjMc3nt5I"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "washer",
      "label": "Washing machine",
      "type": "washer",
      "floor": 0,
      "rect_m": [
        8.0,
        1.33,
        8.7,
        2.03
      ],
      "space_candidates": [],
      "reference_xyz_m": [
        8.35,
        1.68,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcElectricAppliance",
      "predefined": "WASHINGMACHINE",
      "source": {
        "json_pointer": "/modules/24",
        "module_id": "washer",
        "manifest_plan_id": "washer",
        "related_ifc_guids": [
          "1RXFBdWKLJW8GET9BDyk3A",
          "1ciGPdGYbHAvgO7zdVrUn1",
          "1fWj8xFhLP7eNRfaRSBqsi",
          "1kVWqaCyTK9xMFXw$xdKrY",
          "2wYtv1TGnISOI1r8TA_9bW",
          "30QzF7OlbUgug3B4a0DNql",
          "32j1yqZA9QgBVlsfBn6_Sv",
          "3CgiNcpRvKHhyK95HNPdHU",
          "3W5cBhkZbIiO6sEeC8twX5",
          "3d3Xl$G8jUcB1YQ9MPBy7Y"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit washing machine module."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "wc-basin",
      "label": "Lav.",
      "type": "basin",
      "floor": 0,
      "rect_m": [
        10.75,
        2.95,
        11.2,
        3.3
      ],
      "space_candidates": [
        "wc"
      ],
      "reference_xyz_m": [
        10.975,
        3.125,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "hot",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "WASHHANDBASIN",
      "source": {
        "json_pointer": "/modules/12",
        "module_id": "wc-basin",
        "manifest_plan_id": "wc-basin",
        "related_ifc_guids": [
          "3VqvF64MXMxxivIRiULonb"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    },
    {
      "id": "wc-wc",
      "label": "Sanita",
      "type": "toilet",
      "floor": 0,
      "rect_m": [
        11.3,
        2.5,
        11.95,
        2.9
      ],
      "space_candidates": [
        "wc"
      ],
      "reference_xyz_m": [
        11.625,
        2.7,
        0.0
      ],
      "location_status": "source footprint; connection coordinates unknown",
      "presence_status": "source_model",
      "services": [
        "cold",
        "waste"
      ],
      "service_status": "assumed",
      "ifc_class": "IfcSanitaryTerminal",
      "predefined": "WCSEAT",
      "source": {
        "json_pointer": "/modules/11",
        "module_id": "wc-wc",
        "manifest_plan_id": "wc-wc",
        "related_ifc_guids": [
          "3$BJz60znS7x$A7MjE0e1Y"
        ],
        "link_scope": "module group; may contain several furniture parts",
        "basis": "Explicit sanitary module in source program."
      },
      "design_flow_l_s": null,
      "connection_xyz_m": null
    }
  ],
  "network": {
    "connection_model": "implicit: endpoint relationships; intermediate pipes and fittings not designed",
    "nodes": [
      {
        "id": "bath-basin",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "bath-shower",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "bath-wc",
        "kind": "fixture",
        "services": [
          "cold",
          "waste"
        ]
      },
      {
        "id": "ens-basin",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "ens-shower",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "ens-wc",
        "kind": "fixture",
        "services": [
          "cold",
          "waste"
        ]
      },
      {
        "id": "island-2",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "island-3",
        "kind": "fixture",
        "services": [
          "cold",
          "waste"
        ]
      },
      {
        "id": "laundry-top",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "upb-basin",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "upb-shower",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "upb-wc",
        "kind": "fixture",
        "services": [
          "cold",
          "waste"
        ]
      },
      {
        "id": "washer",
        "kind": "fixture",
        "services": [
          "cold",
          "waste"
        ]
      },
      {
        "id": "wc-basin",
        "kind": "fixture",
        "services": [
          "cold",
          "hot",
          "waste"
        ]
      },
      {
        "id": "wc-wc",
        "kind": "fixture",
        "services": [
          "cold",
          "waste"
        ]
      },
      {
        "id": "water-entry",
        "kind": "unlocated_boundary",
        "services": [
          "cold"
        ]
      },
      {
        "id": "hot-water-plant",
        "kind": "unselected_plant",
        "services": [
          "cold",
          "hot"
        ]
      },
      {
        "id": "private-lifting-station",
        "kind": "unlocated_station",
        "services": [
          "waste",
          "rising_main"
        ]
      },
      {
        "id": "valve-chamber",
        "kind": "unlocated_chamber",
        "services": [
          "rising_main"
        ]
      },
      {
        "id": "wastewater-outlet",
        "kind": "unlocated_boundary",
        "services": [
          "rising_main"
        ]
      }
    ],
    "edges": [
      {
        "id": "cold:bath-basin",
        "system": "cold",
        "from": "water-entry",
        "to": "bath-basin",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:bath-shower",
        "system": "cold",
        "from": "water-entry",
        "to": "bath-shower",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:bath-wc",
        "system": "cold",
        "from": "water-entry",
        "to": "bath-wc",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:ens-basin",
        "system": "cold",
        "from": "water-entry",
        "to": "ens-basin",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:ens-shower",
        "system": "cold",
        "from": "water-entry",
        "to": "ens-shower",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:ens-wc",
        "system": "cold",
        "from": "water-entry",
        "to": "ens-wc",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:hot-water-plant",
        "system": "cold",
        "from": "water-entry",
        "to": "hot-water-plant",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:island-2",
        "system": "cold",
        "from": "water-entry",
        "to": "island-2",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:island-3",
        "system": "cold",
        "from": "water-entry",
        "to": "island-3",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:laundry-top",
        "system": "cold",
        "from": "water-entry",
        "to": "laundry-top",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:upb-basin",
        "system": "cold",
        "from": "water-entry",
        "to": "upb-basin",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:upb-shower",
        "system": "cold",
        "from": "water-entry",
        "to": "upb-shower",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:upb-wc",
        "system": "cold",
        "from": "water-entry",
        "to": "upb-wc",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:washer",
        "system": "cold",
        "from": "water-entry",
        "to": "washer",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:wc-basin",
        "system": "cold",
        "from": "water-entry",
        "to": "wc-basin",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "cold:wc-wc",
        "system": "cold",
        "from": "water-entry",
        "to": "wc-wc",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:bath-basin",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "bath-basin",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:bath-shower",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "bath-shower",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:ens-basin",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "ens-basin",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:ens-shower",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "ens-shower",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:island-2",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "island-2",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:laundry-top",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "laundry-top",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:upb-basin",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "upb-basin",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:upb-shower",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "upb-shower",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "hot:wc-basin",
        "system": "hot",
        "from": "hot-water-plant",
        "to": "wc-basin",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "rising_main:private-lifting-station",
        "system": "rising_main",
        "from": "private-lifting-station",
        "to": "valve-chamber",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "rising_main:valve-chamber",
        "system": "rising_main",
        "from": "valve-chamber",
        "to": "wastewater-outlet",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:bath-basin",
        "system": "waste",
        "from": "bath-basin",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:bath-shower",
        "system": "waste",
        "from": "bath-shower",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:bath-wc",
        "system": "waste",
        "from": "bath-wc",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:ens-basin",
        "system": "waste",
        "from": "ens-basin",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:ens-shower",
        "system": "waste",
        "from": "ens-shower",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:ens-wc",
        "system": "waste",
        "from": "ens-wc",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:island-2",
        "system": "waste",
        "from": "island-2",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:island-3",
        "system": "waste",
        "from": "island-3",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:laundry-top",
        "system": "waste",
        "from": "laundry-top",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:upb-basin",
        "system": "waste",
        "from": "upb-basin",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:upb-shower",
        "system": "waste",
        "from": "upb-shower",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:upb-wc",
        "system": "waste",
        "from": "upb-wc",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:washer",
        "system": "waste",
        "from": "washer",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:wc-basin",
        "system": "waste",
        "from": "wc-basin",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      },
      {
        "id": "waste:wc-wc",
        "system": "waste",
        "from": "wc-wc",
        "to": "private-lifting-station",
        "status": "logical_requirement",
        "route_m": null,
        "diameter_mm": null,
        "design_flow_l_s": null
      }
    ]
  },
  "inputs": [
    {
      "id": "water_pressure",
      "label": "Available water pressure at design flow at this plot",
      "value": null,
      "unit": "kPa",
      "status": "missing",
      "source": null,
      "blocks": "Water pressure verification and pipe sizing; published 30 m head reference is not a plot-specific measurement"
    },
    {
      "id": "water_entry",
      "label": "Water entry position in building-local coordinates",
      "value": null,
      "unit": "m xyz",
      "status": "missing",
      "source": null,
      "blocks": "Supply routing"
    },
    {
      "id": "wastewater_outlet",
      "label": "Wastewater connection position and invert level in building-local coordinates",
      "value": null,
      "unit": "m xyz invert",
      "status": "missing",
      "source": null,
      "blocks": "Gravity drainage routing and discharge feasibility"
    },
    {
      "id": "hot_water_strategy",
      "label": "Hot-water energy strategy",
      "value": "solar",
      "unit": "selection",
      "status": "confirmed",
      "source": "User instruction, 2026-10-13",
      "blocks": "Energy strategy recorded; technology, storage, backup and distribution remain unresolved"
    },
    {
      "id": "hot_water_equipment",
      "label": "Solar technology, storage, backup, temperatures and equipment location",
      "value": null,
      "unit": "selection / geometry",
      "status": "missing",
      "source": null,
      "blocks": "Plant selection, thermal sizing, safety components and circulation design"
    },
    {
      "id": "drainage_strategy",
      "label": "Wastewater discharge arrangement",
      "value": "Private lifting station and valve chamber inside plot; pumped discharge to Rua da Balastreira",
      "unit": "selection",
      "status": "confirmed",
      "source": "Utility email supplied by user, 2026-03-05 and 2026-03-06; see utility-evidence.json",
      "blocks": "Arrangement established; pump station position, wet-well levels and duty remain unresolved"
    },
    {
      "id": "lifting_station",
      "label": "Private lifting station position, inlet, operating levels and pump duty",
      "value": null,
      "unit": "geometry / duty",
      "status": "missing",
      "source": null,
      "blocks": "Gravity branches, rising main, pump selection, electrical load and alarm design"
    },
    {
      "id": "occupancy",
      "label": "Design occupancy and use patterns",
      "value": null,
      "unit": "persons / schedule",
      "status": "missing",
      "source": null,
      "blocks": "Demand and hot-water capacity calculations"
    },
    {
      "id": "fixture_data",
      "label": "Selected fixtures: connections, design flows, pressures and discharge loading",
      "value": null,
      "unit": "catalogue",
      "status": "missing",
      "source": null,
      "blocks": "Terminal placement and engineering calculations"
    },
    {
      "id": "pipe_catalogue",
      "label": "Pipe and fitting catalogue, materials, internal diameters and losses",
      "value": null,
      "unit": "catalogue",
      "status": "missing",
      "source": null,
      "blocks": "Sizing and constructible routing"
    },
    {
      "id": "service_zones",
      "label": "Permitted service zones and structural penetrations",
      "value": null,
      "unit": "geometry",
      "status": "missing",
      "source": null,
      "blocks": "Clash-aware installation routing"
    },
    {
      "id": "design_rules",
      "label": "Applicable demand, sizing, slope and drainage venting rules with editions",
      "value": null,
      "unit": "rule set",
      "status": "missing",
      "source": null,
      "blocks": "Engineering compliance checks"
    }
  ],
  "service_basis": "Assumed connection requirements for initial topology only. Product selection may change these; no flow, diameter or connection height has been assumed.",
  "deferred_service_candidates": [
    {
      "module_id": "dryer",
      "reason": "Condensate collection or drain connection depends on the selected appliance."
    }
  ],
  "spaces": [
    {
      "id": "kitchen",
      "label": "Cozinha",
      "floor": 0,
      "rect": [
        4.4,
        0.13,
        7.95,
        6.88
      ],
      "kind": "kitchen",
      "counted": true,
      "note": "Sem escada. Bancadas norte/sul simétricas de 5,50 × 0,65 m; só móveis baixos."
    },
    {
      "id": "laundry",
      "label": "Arrumos / tanque",
      "floor": 0,
      "rect": [
        8.65,
        2.13,
        9.35,
        4.4
      ],
      "kind": "laundry",
      "counted": true,
      "note": "Máquinas transferidas para os dois módulos com acesso pelo corredor."
    },
    {
      "id": "bath",
      "label": "Banho",
      "floor": 0,
      "rect": [
        8.65,
        4.5,
        10.45,
        6.88
      ],
      "kind": "bath",
      "counted": true,
      "note": ""
    },
    {
      "id": "wc",
      "label": "WC social",
      "floor": 0,
      "rect": [
        10.55,
        2.13,
        11.95,
        3.3
      ],
      "kind": "bath",
      "counted": true,
      "note": ""
    },
    {
      "id": "ensuite",
      "label": "Banho privativo Q1",
      "floor": 0,
      "rect": [
        10.55,
        3.4,
        11.95,
        6.88
      ],
      "kind": "bath",
      "counted": true,
      "note": "Private to bedroom 1, door from the bedroom only."
    },
    {
      "id": "bath-up",
      "label": "Banho visitas",
      "floor": 1,
      "rect": [
        8.65,
        4.5,
        11.95,
        6.88
      ],
      "kind": "bath",
      "counted": true,
      "note": "Stacked over the ground-floor bath."
    }
  ],
  "validation": {
    "logical_errors": [],
    "logical_status": "pass",
    "engineering_status": "not_evaluated",
    "routing_status": "separate_partial_study",
    "missing_inputs": [
      "water_pressure",
      "water_entry",
      "wastewater_outlet",
      "hot_water_equipment",
      "lifting_station",
      "occupancy",
      "fixture_data",
      "pipe_catalogue",
      "service_zones",
      "design_rules"
    ],
    "limits": [
      "The logical IFC contains no pipe routes, sizes or flows. Separate drainage reservations are available in routing-study.json.",
      "No structural, hydraulic, drainage venting or code checks have run.",
      "Fixture envelopes and port positions are schematic references.",
      "Electrical, AVAC, solar collector circuit, rainwater and external fixtures are outside this first slice."
    ],
    "ifc": {
      "status": "pass",
      "errors": [],
      "schema": "IFC4",
      "ports": 84,
      "connections": 42,
      "systems": 4,
      "physical_pipe_segments": 0,
      "scope": "Schema/EXPRESS and logical connectivity; no engineering or installation validation"
    },
    "routing_study": {
      "status": "partial_candidates_with_unresolved_branches",
      "branch_counts": {
        "candidate_requires_review": 4,
        "insufficient_fall": 3,
        "blocked_geometry": 6,
        "needs_island_service_detail": 2
      },
      "ifc": {
        "status": "pass",
        "errors": [],
        "reservations": 17,
        "scope": "Schema/EXPRESS and reservation identity/status; engineering and physical connectivity unresolved"
      },
      "artifact": "routing-study.json"
    },
    "terrain_study": {
      "artifact": "terrain-study.json",
      "counts": {
        "candidate_requires_review": 17
      },
      "selected_station_id": "middle-34",
      "ifc": {
        "status": "pass",
        "errors": [],
        "reservations": 19,
        "scope": "Schema/EXPRESS and reservation identity/status; engineering and physical connectivity unresolved"
      }
    },
    "drainage_connections": {
      "status": "pass",
      "connected_fixture_groups": 15,
      "scope": "Directed geometric route continuity to the private station, including swept bends; not hydraulic sizing or installed fitting connectivity."
    },
    "internal_routing": {
      "status": "pass",
      "minimum_new_route_terrain_gap_m": 0.208858012560722,
      "scope": "Modified routes sampled at 15 mm against pipe envelopes with 25 mm clearance plus sampling allowance; 300 mm junction zones need fitting design. Ground clearance checked below slab. No hydraulic or acoustic validation."
    },
    "odour_control": {
      "status": "pass",
      "errors": [],
      "scope": "Provision coverage, rule links, collector vent count and inspection spacing only",
      "ifc": {
        "status": "pass",
        "errors": [],
        "reservations": 53,
        "scope": "Schema/EXPRESS and reservation identity/status; engineering and physical connectivity unresolved"
      }
    },
    "rainwater": {
      "status": "pass",
      "roof_outlets": 4,
      "destination": [
        -18.0,
        4.5,
        -3.65
      ],
      "scope": "Four main-roof scuppers reach cistern inlet on downward swept centrelines. Does not certify emergency drainage, storm flow capacity or supply distribution. Canopies are excluded.",
      "minimum_buried_cover_m": 0.7306545641545276,
      "obstacle_reviews": 0,
      "canopy_routes": 0,
      "ifc": {
        "status": "pass",
        "errors": [],
        "reservations": 17,
        "scope": "Schema/EXPRESS and reservation identity/status; engineering and physical connectivity unresolved"
      }
    },
    "federation": {
      "architecture_elements": 1547,
      "mep_reservations": 70,
      "architecture_reference": "r11-e15-2026-10-12",
      "program_matches_reference": true
    }
  },
  "utility_evidence": {
    "schema_version": 1,
    "recorded_on": "2026-10-13",
    "utility_email": {
      "source": "User-supplied utility correspondence dated 2026-03-05 and 2026-03-06; technical facts extracted without personal contact details",
      "private_lifting_station_required": true,
      "station_location_requirement": "Inside the plot, installed by the property owner",
      "valve_chamber_required": true,
      "discharge_destination": "Rua da Balastreira",
      "nearest_chamber_depth_m": 1.4,
      "nearest_chamber_invert_elevation_m": 16.7,
      "elevation_datum": "Not identified in correspondence; reconcile with survey before subtracting elevations",
      "chamber_xy": null,
      "gravity_option_low_point_cover_above_crown_m": 1.0,
      "gravity_option_reported_collector_depth_m": 1.2,
      "cover_scope": "Utility discussion of a hypothetical gravity connection at the low point; not a specified rising-main burial depth",
      "minimum_private_drain_slope": null,
      "slope_note": "The sender asked whether 10% was suitable; the utility reply did not specify a minimum slope. Do not use 10% as an approved criterion.",
      "public_water_extension": {
        "length_m": 40,
        "nominal_size_as_reported": "2 inches",
        "note": "Quoted public-network works; not the private pipe internal diameter or an available-pressure measurement"
      }
    },
    "water_pressure_research": {
      "checked_on": "2026-10-13",
      "published_reference_head_m": 30.0,
      "equivalent_pressure_kpa": 294.1995,
      "conversion": "1000 kg/m3 * 9.80665 m/s2 * 30 m / 1000; approximately 2.94 bar",
      "status": "published service reference only; not adopted as verified plot inlet pressure",
      "source": "https://www.aguasdafigueira.com/wp-content/uploads/2019/05/republicaco-CC.pdf",
      "locator": "Article 63, Pressao da Agua, printed page 32",
      "qualification": "The published concession text gives 30 m water head under normal service and explicitly allows lower minima in areas with particular structural conditions.",
      "public_pressure_map_found": false,
      "search_scope": "Public Aguas da Figueira and ERSAR pages and focused web searches; no plot-level national pressure map located",
      "maps_found": [
        {
          "url": "https://www.aguasdafigueira.com/a-agua/",
          "type": "Supply network and water hardness"
        },
        {
          "url": "https://www.ersar.pt/pt_consumidor_qualidade-da-agua_caracteristicas-da-agua.html",
          "type": "Water hardness by municipality"
        }
      ],
      "needed": "Utility minimum/maximum pressures and pressure at design flow for this connection, or representative measurements. Do not infer site pressure from hardness or a national service indicator."
    }
  },
  "source_service_inventory": {
    "pipe_segments": 156,
    "distribution_ports": 0,
    "note": "Existing source service geometry is not imported into the new logical networks."
  }
}
