{"schema_version": 1, "model_binding": {"schema_version": 1, "architecture_reference": "r11-e15-2026-10-12", "scope": "Pinned inputs for this working MEP study; not an archived architectural revision. Rebinding requires architecture, fixture, transform and routing review.", "program_content_sha256": "6953ebb68b33ecd41fcd75fabb30ebe71f10907b85a4442792a1e074a606b668", "external_inputs": [{"path": "data/site/r10/estufa/site-model.json", "sha256": "21a30001dfd554dfd003dd3da09124694d767179087824107447697abffd10ad"}, {"path": "data/site/r10/estufa/survey.json", "sha256": "ea80ed7d3d0bb24da976f73ebd1a80697557341c22c615281aae1251e054c59c"}, {"path": "data/site/r11/model/Casa_Sobreposta_R11_E.ifc", "sha256": "4fb989a1e4ea21490ad9b6e525cd9d402f7ee2b089e57da1ed14e93682e75e6d"}, {"path": "data/site/r11/model/geometry.json", "sha256": "773c6d5a83c0ebe4b769c89fdf50e44b97362ff0d7b64ba0f27796332c933bad"}, {"path": "data/site/r11/model/manifest.json", "sha256": "2417c0a58d21b02f7a2c64a12c173ff9bd6571e453d0630128461da6a9651bf2"}, {"path": "data/site/r11/model/validation.json", "sha256": "a5f60d85307badaaceb0b3e59601162bced4444ff5a121d62e65a4c9e64f96cb"}, {"path": "data/site/r11/model/vendor/LICENSE-three.txt", "sha256": "df2a91696186fe58c92518a25d48bc59c8ee2edc7cac9ca6d19a5a0d599a2a05"}, {"path": "data/site/r11/model/vendor/OrbitControls.js", "sha256": "380aea34537dba1954bc2c6ea3d20b2206b769ac0855b2c930f4697730fe5248"}, {"path": "data/site/r11/model/vendor/three.core.js", "sha256": "1ebe18dbd969e471d60f35ecd6fedece5f2ad11b7bcf65ea80f32dd63fb60a5f"}, {"path": "data/site/r11/model/vendor/three.module.js", "sha256": "857710a1f55881d3a8e625dd2c8dc328cc9f24e8b1dc389b889b32db61ba49af"}, {"path": "data/site/r11/model/green-roof-review.json", "sha256": "7ae17bf876c74c3b83b9d5ed73b80e54756c0ede880563b66ed9cea9a32116c9"}]}, "kind": "working coordination federation; not an archived revision or publication", "architecture_reference": "r11-e15-2026-10-12", "program_matches_reference": true, "git_commit_at_build": "1805c2e78963e6f363fd329c54eac4203ba65463", "git_branch_at_build": "codex/mep-federation", "mep_worktree_changes": "", "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."}, "placement": "Both layers use building-local metres. Do not apply the survey transform twice.", "architecture_geometry": {"path": "data\\site\\r11\\model\\geometry.json", "sha256": "773c6d5a83c0ebe4b769c89fdf50e44b97362ff0d7b64ba0f27796332c933bad"}, "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"}, {"path": "data\\mep\\terrain-routing.json", "sha256": "a2b3c142fe98efd0d42660233653b5a6cf9bb8c779b2a47f1841521d243c9077"}, {"path": "data\\mep\\routing-study.json", "sha256": "12698f611aa68060f4b82e67d4e85c38fd75e887eadee0cad94c99596aa088a7"}, {"path": "data\\site\\r11\\model\\geometry.json", "sha256": "773c6d5a83c0ebe4b769c89fdf50e44b97362ff0d7b64ba0f27796332c933bad"}, {"path": "data\\site\\r11\\model\\validation.json", "sha256": "a5f60d85307badaaceb0b3e59601162bced4444ff5a121d62e65a4c9e64f96cb"}, {"path": "data\\site\\r10\\estufa\\survey.json", "sha256": "ea80ed7d3d0bb24da976f73ebd1a80697557341c22c615281aae1251e054c59c"}, {"path": "data\\site\\r10\\estufa\\site-model.json", "sha256": "21a30001dfd554dfd003dd3da09124694d767179087824107447697abffd10ad"}, {"path": "data\\mep\\odour-control.json", "sha256": "a82ec15b63968bfc6637809a7aa58c4f3d32904c10542d5937c52d0344cfe31d"}, {"path": "data\\mep\\model-binding.json", "sha256": "361bd8efa97b3fe8e9e647085b802388edf12c3cb43ffc74b4d2d1748c7431c6"}, {"path": "data\\mep\\rainwater.json", "sha256": "072c95cc516370ea7330466027b59200993cac23ae935056f7921d67c409d57c"}, {"path": "data\\site\\r11\\model\\green-roof-review.json", "sha256": "7ae17bf876c74c3b83b9d5ed73b80e54756c0ede880563b66ed9cea9a32116c9"}, {"path": "project-history\\revisions\\r11-e15-2026-10-12\\provenance\\revision_e15.py", "sha256": "39dca9e522ebc7473374c0b8f0e53d8d1695d78663c0201063632af7a8e94429"}, {"path": "project-history\\revisions\\r11-e15-2026-10-12\\provenance\\green_roof_e.py", "sha256": "ca95cf0008f100f7c046abfb438c47029aa3170a4ced5758a7043473aba1c2a5"}], "implementation": [{"path": "tools\\mep\\build.py", "sha256": "66be037ebf49411743c4e0448132b57650240fea4106d373fc271e5e3212b64c"}, {"path": "tools\\mep\\connections.py", "sha256": "9955f5aa7cca16429af898ebf788fd9572343b86e860a389cc3ed92a279a7fc7"}, {"path": "tools\\mep\\cupboard_routing.py", "sha256": "0de06f6a3df1a34dcb306180563af85f5d3eabac8621ec397650702a3451f126"}, {"path": "tools\\mep\\elbows.py", "sha256": "4203e4da4733cf1700fab7f99109be1bbf581829b858ebe66092f7395256c378"}, {"path": "tools\\mep\\enclosures.py", "sha256": "8137afccbbbc82e27420ec74fbd43dc961cc89b86064a53d0cc8cf0a5b1a1643"}, {"path": "tools\\mep\\federation.py", "sha256": "104daa1aa3995069436cbcc13a58648edcade08f398e48c6e310dc2f608dcd13"}, {"path": "tools\\mep\\ifc_export.py", "sha256": "3d0aa637924158f5023073dfc56acc6c198d7336b881535ed068294f2ba0c7fb"}, {"path": "tools\\mep\\model.html", "sha256": "added9c3a028ef07154dd0d45bf3a649e8558aaccbfe95460f23c44cdde1c841"}, {"path": "tools\\mep\\model.js", "sha256": "ba5f3fd7f907efdaca5f339e254dae4622eb6fe0b14923d1e7cdaaa7ca8cb94f"}, {"path": "tools\\mep\\network.py", "sha256": "26d99b83e60f28c227bf765b6cfbf39b3ce9b682128a4143a3fdefb93fd05f4c"}, {"path": "tools\\mep\\odour_control.py", "sha256": "a3faa9360292acfc5d2090a156aba270ac1db3f60ad5e3b5ee5d475bea7a9e0a"}, {"path": "tools\\mep\\rainwater.html", "sha256": "9242b58349ad644381e1235114071cee7acc5a3b73346a7d4764a276750f022e"}, {"path": "tools\\mep\\rainwater.py", "sha256": "18d220635258f97b3df4f023f94c6acf6470bafa074ab058418f950a53de0cfc"}, {"path": "tools\\mep\\report.html", "sha256": "0b95749b99230918ad69cebc2823eb0c12aebb636cb98255caf225d025c8cdf3"}, {"path": "tools\\mep\\routing.html", "sha256": "6fbbbbf4bd407e408e6c5af6824b313fd256a33026541d45880e03c263473404"}, {"path": "tools\\mep\\routing.py", "sha256": "5b23f8c31dc06782f25c4939ae942d4a698a37a93d0181a87d46eee84e917b29"}, {"path": "tools\\mep\\routing_ifc.py", "sha256": "b60fe02a9a621ce8ff708e2924fbf4d08ba363b6ae5ed09aaa5d7c45e64e73f6"}, {"path": "tools\\mep\\terrain.html", "sha256": "048550612466e13cf9d4be362093fc1068ec3bf4d2ef92d3c0810ab6463ed891"}, {"path": "tools\\mep\\terrain_routing.py", "sha256": "5450798a80e1612829f2e32aaee9aafd6230b69b46218f8cebebeb46efd981a3"}, {"path": "tools\\mep\\test_connections.py", "sha256": "28e3ce9d65499ab0dcdf4fffcf1948fa2536c662cabde11fd90cae0efcfffc83"}, {"path": "tools\\mep\\test_cupboard_routing.py", "sha256": "330a1b693fb41b70d846da7e6394aed322e93687f884cb441f21decbda77d102"}, {"path": "tools\\mep\\test_elbows.py", "sha256": "35947d10a6fdce291fdcda5949a9dbda4f0c5911ecc669ef2fde0ac422635735"}, {"path": "tools\\mep\\test_enclosures.py", "sha256": "937c0fbfddf4879203364421f6b974c705912fdc142da4def5737359e4d32cea"}, {"path": "tools\\mep\\test_federation.py", "sha256": "d14d2d4fed63e80fcdaabdcfc1e41b361f2cda0e1a78deaa34b9bcb8cf7a67ac"}, {"path": "tools\\mep\\test_odour_control.py", "sha256": "aab7b4305a0d8e38cb4c924518dc64a79660b6006fbe86487fa70a10b94681ea"}, {"path": "tools\\mep\\test_rainwater.py", "sha256": "a377021fc72a080e42814160b0c619658d232d5a05d30395ae8bfd49b61c872e"}, {"path": "tools\\mep\\test_routing.py", "sha256": "44aea9c61b479dd500a1ce91ebd333e2e1f032f4811d2b9ed9354b04ee42940a"}, {"path": "tools\\mep\\test_terrain_routing.py", "sha256": "6be8e48d015e04ee0d66d1b892accaf6ea5df0715be706569c92b9b3bf9c0f35"}, {"path": "tools\\mep\\test_wet_core.py", "sha256": "a93fd7f9fa92045e4ecf5ae2befa045fa9ffa55430c54f33b83da96dc3b7ca86"}, {"path": "tools\\mep\\workspace.py", "sha256": "b76addfc8e1701c54be7cec44013676d98ce298c2cb85adb193791d23dbc2566"}], "external_runtime": [{"path": "data\\site\\r11\\model\\vendor\\three.module.js", "sha256": "857710a1f55881d3a8e625dd2c8dc328cc9f24e8b1dc389b889b32db61ba49af"}, {"path": "data\\site\\r11\\model\\vendor\\three.core.js", "sha256": "1ebe18dbd969e471d60f35ecd6fedece5f2ad11b7bcf65ea80f32dd63fb60a5f"}, {"path": "data\\site\\r11\\model\\vendor\\OrbitControls.js", "sha256": "380aea34537dba1954bc2c6ea3d20b2206b769ac0855b2c930f4697730fe5248"}, {"path": "data\\site\\r11\\model\\vendor\\LICENSE-three.txt", "sha256": "df2a91696186fe58c92518a25d48bc59c8ee2edc7cac9ca6d19a5a0d599a2a05"}], "layers": {"architecture": "house-geometry.json", "mep": "federation-model.json", "mep_ifc": "Casa_G_drainage_with_odour_controls.ifc", "site_aligned_mep_ifc": "Casa_G_drainage_site_aligned.ifc", "rainwater_ifc": "Casa_G_rainwater_local.ifc", "site_aligned_rainwater_ifc": "Casa_G_rainwater_site_aligned.ifc"}, "limits": ["Trial fall 2%, pipe envelopes, burial cover, station/valve sizes and excavation preferences are not final design requirements.", "Terrain is the existing surveyed TIN sampled at no more than 0.25 m along routes; final earthworks, foundations, underground services and groundwater remain unverified.", "Floor and plinth penetrations are requests requiring structural and waterproofing details; no source geometry has been cut.", "Gravity centreline junctions meet; fittings, traps, ventilation, pipe-to-pipe clearance, cleanouts, maintenance access and hydraulic capacity remain unresolved.", "The station bottom is a geometric allowance below inlet, not a selected wet well or operating/storage volume.", "R10 driveway geometry is an access reference, not proof of current vehicle or lifting access.", "Public rising main and pump duty are not calculated: public chamber XY, connection requirements and compatible vertical datum remain missing.", "Dedicated service compartment in aligned core cupboard module 6 on both floors; upper branches in an accessible internal ceiling band. Joinery conversion and openings remain requests.", "Trap objects and cover objects are coordination markers, not selected products or cut openings.", "Primary vents connect geometrically to the ground-floor collector ends; branch vent distances and sizing remain unresolved for every fixture.", "House terminal checks cover current roof and modelled doors/glazing only, not neighbouring openings, all intakes or final roof use.", "The station mast is a provisional independent vent provision; manufacturer approval, odour dispersion and final outlet location remain open.", "Secondary fixture vent routes require actual trap outlets, fixture rim levels and branch calculations; no air-admittance valve substitutes for primary ventilation.", "No air/smoke/water commissioning test has been performed. Source architecture and AVAC ducts remain unchanged.", "Rainwater only; no connection to domestic wastewater or its pumping station.", "Supply to toilets and garden is a system brief; pressurised distribution, pump duty, treatment and air-gap backup are not yet routed or sized.", "Outlet/gutter hydraulic capacity, independent emergency roof drainage, tank structure, groundwater buoyancy, geotechnics and final overflow destination remain to be designed.", "Historical rainwater groups are hidden in this federation; lower terraces and retaining-wall drains remain excluded, not newly connected to the cistern.", "User rejected perimeter canopy pipes. No canopy collection is assumed or counted. Straight downpipes use short roof-outlet connections; brackets and canopy penetration details remain to be designed."], "connection_validation": {"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."}, "external_drop_detail": {"route_id": "site:house-to-station", "source_route_ids": ["underslab:exit", "site:drop", "site:middle-34"], "elbow_count": 4}, "enclosure_validation": {"status": "proposal", "ceiling_cover_underside_m": 2.2058999999999984, "scope": "Internal conversion envelopes; panel penetrations, acoustics, fire stopping and room clearances require detailing."}, "joinery_conversion": {"module_ids": ["core-cabinet-0-6", "core-cabinet-1-6"], "replacement_source_guids": ["09SHXdYaTJrur11RpFQZhD", "2dBZ0DE4XMnuFAcyFCVs$x"], "access_door_guids": ["2eMaLOcOXNPOgH_58giYvw", "3HUvR2DSXN$AVXo$joS84p", "3_kZeRlvHI3BjJVERIzmJi", "0EKG8BVRrOnx5Vj2JuGLrP"], "storage_modules_reserved": 2, "scope": "Viewer suppresses only these two original shelf/carcass assemblies in favour of proposal panels. Original architecture file and IFC remain unchanged; apply joinery conversion in authoring model before construction coordination."}, "internal_routing_validation": {"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."}, "site_ifc_check": {"status": "pass", "objects": 53, "frame": "site-survey-metres"}, "rainwater": {"recovery": {"revision": "r11-e15-2026-10-12", "original": {"cistern_xy": [-18.0, 4.5], "usable_m3": 5.0, "inlet_z": -3.3, "overflow_z": -3.35, "bottom_z": -4.35, "attenuation_rect": [-22.0, -5.5, -18.0, -3.5], "attenuation_invert_z": -4.95, "attenuation_void_m3": 6.08, "note": "Reserva: cisterna de rega 5 m³ e retenção 6,08 m³. Infiltração condicionada a ensaio e geotecnia; descarga final e emergência por validar, sem ligação assumida à rede pública."}, "parameters_and_generators_match": true}, "validation": {"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"}}, "tank": {"usable_m3": 5.0, "internal_gross_m3": 6.5, "minimum_draw_level_z": -4.85, "overflow_z": -3.85, "filter_inlet_z": -3.65, "ground_z": -2.1445737408760865, "excavation_depth_m": 2.955426259123913, "bounds_m": [[-19.4, 3.35, -5.1], [-16.6, 5.65, -3.5]], "original_inlet_z": -3.3, "original_bottom_z": -4.35}, "sizing_summary": {"annual_yield_m3": 61.96106148840016, "annual_demand_m3": 80.4504, "selected": {"capacity_m3": 5, "months": [{"month": 1, "inflow_m3": 8.119825053612077, "demand_m3": 2.976, "start_m3": 5, "used_m3": 2.976, "backup_m3": 0.0, "overflow_m3": 5.143825053612076, "end_m3": 5}, {"month": 2, "inflow_m3": 5.794765016234169, "demand_m3": 2.688, "start_m3": 5, "used_m3": 2.688, "backup_m3": 0.0, "overflow_m3": 3.106765016234169, "end_m3": 5}, {"month": 3, "inflow_m3": 5.3941392867167455, "demand_m3": 2.976, "start_m3": 5, "used_m3": 2.976, "backup_m3": 0.0, "overflow_m3": 2.4181392867167455, "end_m3": 5}, {"month": 4, "inflow_m3": 6.052310128066797, "demand_m3": 2.88, "start_m3": 5, "used_m3": 2.88, "backup_m3": 0.0, "overflow_m3": 3.1723101280667976, "end_m3": 5}, {"month": 5, "inflow_m3": 4.628657982103095, "demand_m3": 12.1768, "start_m3": 5, "used_m3": 9.628657982103096, "backup_m3": 2.548142017896904, "overflow_m3": 0.0, "end_m3": 0.0}, {"month": 6, "inflow_m3": 1.860048029902326, "demand_m3": 11.783999999999999, "start_m3": 0.0, "used_m3": 1.860048029902326, "backup_m3": 9.923951970097672, "overflow_m3": 0.0, "end_m3": 0.0}, {"month": 7, "inflow_m3": 0.6367087486973347, "demand_m3": 12.1768, "start_m3": 0.0, "used_m3": 0.6367087486973347, "backup_m3": 11.540091251302666, "overflow_m3": 0.0, "end_m3": 0.0}, {"month": 8, "inflow_m3": 1.0587965708674778, "demand_m3": 12.1768, "start_m3": 0.0, "used_m3": 1.0587965708674778, "backup_m3": 11.118003429132521, "overflow_m3": 0.0, "end_m3": 0.0}, {"month": 9, "inflow_m3": 3.569861411235617, "demand_m3": 11.783999999999999, "start_m3": 0.0, "used_m3": 3.569861411235617, "backup_m3": 8.214138588764381, "overflow_m3": 0.0, "end_m3": 0.0}, {"month": 10, "inflow_m3": 8.191365362454473, "demand_m3": 2.976, "start_m3": 0.0, "used_m3": 2.976, "backup_m3": 0.0, "overflow_m3": 0.2153653624544729, "end_m3": 5}, {"month": 11, "inflow_m3": 8.692147524351252, "demand_m3": 2.88, "start_m3": 5, "used_m3": 2.88, "backup_m3": 0.0, "overflow_m3": 5.8121475243512535, "end_m3": 5}, {"month": 12, "inflow_m3": 7.962436374158801, "demand_m3": 2.976, "start_m3": 5, "used_m3": 2.976, "backup_m3": 0.0, "overflow_m3": 4.986436374158803, "end_m3": 5}], "used_m3": 37.10607274280585, "backup_m3": 43.344327257194145, "overflow_m3": 24.85498874559432, "coverage_pct": 46.12291889512774}}, "legacy_replacement_groups": ["rainwater", "rainwater-buried"], "scope": "Separate rainwater collection overlay; non-potable supply distribution pending.", "site_ifc_check": {"status": "pass", "objects": 17, "frame": "site-survey-metres"}}}