@pascal-app/core 1.0.0-beta.5 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +23 -0
  3. package/dist/capture/index.d.ts +3 -0
  4. package/dist/capture/index.d.ts.map +1 -0
  5. package/dist/capture/index.js +2 -0
  6. package/dist/capture/schema.d.ts +417 -0
  7. package/dist/capture/schema.d.ts.map +1 -0
  8. package/dist/capture/schema.js +350 -0
  9. package/dist/capture/source.d.ts +60 -0
  10. package/dist/capture/source.d.ts.map +1 -0
  11. package/dist/capture/source.js +254 -0
  12. package/dist/events/bus.d.ts +58 -7
  13. package/dist/events/bus.d.ts.map +1 -1
  14. package/dist/events/hidden-wall-pointer-hold.d.ts +28 -0
  15. package/dist/events/hidden-wall-pointer-hold.d.ts.map +1 -0
  16. package/dist/events/hidden-wall-pointer-hold.js +37 -0
  17. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts +4 -4
  18. package/dist/hooks/spatial-grid/floor-placed-elevation.d.ts.map +1 -1
  19. package/dist/hooks/spatial-grid/floor-placed-elevation.js +7 -12
  20. package/dist/hooks/spatial-grid/floor-placed-footprints.d.ts +4 -0
  21. package/dist/hooks/spatial-grid/floor-placed-footprints.d.ts.map +1 -0
  22. package/dist/hooks/spatial-grid/floor-placed-footprints.js +7 -0
  23. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts +5 -8
  24. package/dist/hooks/spatial-grid/spatial-grid-manager.d.ts.map +1 -1
  25. package/dist/hooks/spatial-grid/spatial-grid-manager.js +23 -106
  26. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts +2931 -2
  27. package/dist/hooks/spatial-grid/spatial-grid-sync.d.ts.map +1 -1
  28. package/dist/hooks/spatial-grid/spatial-grid-sync.js +207 -30
  29. package/dist/hooks/spatial-grid/support-host-patch.d.ts +45 -1
  30. package/dist/hooks/spatial-grid/support-host-patch.d.ts.map +1 -1
  31. package/dist/hooks/spatial-grid/support-host-patch.js +174 -9
  32. package/dist/hooks/spatial-grid/use-spatial-query.d.ts +1 -1
  33. package/dist/hooks/spatial-grid/use-spatial-query.js +1 -1
  34. package/dist/index.d.ts +74 -64
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +74 -61
  37. package/dist/lib/asset-storage.d.ts.map +1 -1
  38. package/dist/lib/asset-storage.js +4 -1
  39. package/dist/lib/door-operation.d.ts +1 -1
  40. package/dist/lib/item-polygon-overlap.d.ts +6 -0
  41. package/dist/lib/item-polygon-overlap.d.ts.map +1 -0
  42. package/dist/lib/item-polygon-overlap.js +67 -0
  43. package/dist/lib/level-name.d.ts +1 -1
  44. package/dist/lib/measurement-geometry.d.ts +4 -4
  45. package/dist/lib/plan-footprint.d.ts +41 -0
  46. package/dist/lib/plan-footprint.d.ts.map +1 -0
  47. package/dist/lib/plan-footprint.js +58 -0
  48. package/dist/lib/polygon-union.d.ts +4 -0
  49. package/dist/lib/polygon-union.d.ts.map +1 -0
  50. package/dist/lib/polygon-union.js +306 -0
  51. package/dist/lib/roof-overlap.d.ts +32 -0
  52. package/dist/lib/roof-overlap.d.ts.map +1 -0
  53. package/dist/lib/roof-overlap.js +72 -0
  54. package/dist/lib/room-topology-index.d.ts +1 -1
  55. package/dist/lib/room-topology-index.js +1 -1
  56. package/dist/lib/selection-proxy.d.ts +1 -1
  57. package/dist/lib/slab-polygon.d.ts +36 -3
  58. package/dist/lib/slab-polygon.d.ts.map +1 -1
  59. package/dist/lib/slab-polygon.js +135 -29
  60. package/dist/lib/space-detection.d.ts +12 -1
  61. package/dist/lib/space-detection.d.ts.map +1 -1
  62. package/dist/lib/space-detection.js +58 -25
  63. package/dist/lib/terrain-brush.d.ts +1 -1
  64. package/dist/lib/terrain-brush.js +1 -1
  65. package/dist/lib/terrain-codec.d.ts +2 -2
  66. package/dist/lib/terrain-codec.js +1 -1
  67. package/dist/lib/terrain-raycast.d.ts +1 -1
  68. package/dist/lib/terrain-raycast.js +1 -1
  69. package/dist/lib/terrain-source.d.ts +3 -3
  70. package/dist/lib/terrain-source.js +3 -3
  71. package/dist/lib/terrain-support.d.ts +1 -1
  72. package/dist/lib/terrain-support.js +3 -3
  73. package/dist/lib/unit-containment.d.ts +19 -0
  74. package/dist/lib/unit-containment.d.ts.map +1 -0
  75. package/dist/lib/unit-containment.js +158 -0
  76. package/dist/lib/unit-report.d.ts +19 -0
  77. package/dist/lib/unit-report.d.ts.map +1 -0
  78. package/dist/lib/unit-report.js +36 -0
  79. package/dist/lib/wall-distance.d.ts +2 -2
  80. package/dist/lib/wall-distance.js +1 -1
  81. package/dist/lib/zone-quantities.d.ts +1 -1
  82. package/dist/lib/zone-quantities.js +7 -7
  83. package/dist/material-library.d.ts +1 -1
  84. package/dist/material-library.js +1 -1
  85. package/dist/procedural-items/fixtures.d.ts +261 -0
  86. package/dist/procedural-items/fixtures.d.ts.map +1 -0
  87. package/dist/procedural-items/fixtures.js +349 -0
  88. package/dist/procedural-items/index.d.ts +10 -0
  89. package/dist/procedural-items/index.d.ts.map +1 -0
  90. package/dist/procedural-items/index.js +9 -0
  91. package/dist/procedural-items/integration.d.ts +92 -0
  92. package/dist/procedural-items/integration.d.ts.map +1 -0
  93. package/dist/procedural-items/integration.js +19 -0
  94. package/dist/procedural-items/library-colors.d.ts +56 -0
  95. package/dist/procedural-items/library-colors.d.ts.map +1 -0
  96. package/dist/procedural-items/library-colors.js +84 -0
  97. package/dist/procedural-items/materials.d.ts +5 -0
  98. package/dist/procedural-items/materials.d.ts.map +1 -0
  99. package/dist/procedural-items/materials.js +47 -0
  100. package/dist/procedural-items/node.d.ts +280 -0
  101. package/dist/procedural-items/node.d.ts.map +1 -0
  102. package/dist/procedural-items/node.js +71 -0
  103. package/dist/procedural-items/placement.d.ts +7 -0
  104. package/dist/procedural-items/placement.d.ts.map +1 -0
  105. package/dist/procedural-items/placement.js +48 -0
  106. package/dist/procedural-items/query.d.ts +50 -0
  107. package/dist/procedural-items/query.d.ts.map +1 -0
  108. package/dist/procedural-items/query.js +298 -0
  109. package/dist/procedural-items/recipe.d.ts +144 -0
  110. package/dist/procedural-items/recipe.d.ts.map +1 -0
  111. package/dist/procedural-items/recipe.js +372 -0
  112. package/dist/procedural-items/spatial.d.ts +19 -0
  113. package/dist/procedural-items/spatial.d.ts.map +1 -0
  114. package/dist/procedural-items/spatial.js +39 -0
  115. package/dist/registry/__bench__/relations-resolver.bench.js +2 -2
  116. package/dist/registry/handles.d.ts +36 -7
  117. package/dist/registry/handles.d.ts.map +1 -1
  118. package/dist/registry/index.d.ts +6 -7
  119. package/dist/registry/index.d.ts.map +1 -1
  120. package/dist/registry/index.js +4 -5
  121. package/dist/registry/registry.d.ts +13 -6
  122. package/dist/registry/registry.d.ts.map +1 -1
  123. package/dist/registry/registry.js +37 -4
  124. package/dist/registry/relations-resolver.d.ts +2 -2
  125. package/dist/registry/relations-resolver.js +1 -1
  126. package/dist/registry/scene-api.d.ts +18 -2
  127. package/dist/registry/scene-api.d.ts.map +1 -1
  128. package/dist/registry/scene-api.js +50 -2
  129. package/dist/registry/subtree.d.ts +1 -1
  130. package/dist/registry/subtree.js +2 -2
  131. package/dist/registry/types.d.ts +246 -21
  132. package/dist/registry/types.d.ts.map +1 -1
  133. package/dist/registry/use-registry-version.js +1 -1
  134. package/dist/registry/validate-relations.d.ts +4 -0
  135. package/dist/registry/validate-relations.d.ts.map +1 -0
  136. package/dist/registry/validate-relations.js +22 -0
  137. package/dist/schema/__bench__/node-parsers.bench.d.ts +24 -0
  138. package/dist/schema/__bench__/node-parsers.bench.d.ts.map +1 -0
  139. package/dist/schema/__bench__/node-parsers.bench.js +314 -0
  140. package/dist/schema/__fixtures__/node-fixtures.d.ts +28 -0
  141. package/dist/schema/__fixtures__/node-fixtures.d.ts.map +1 -0
  142. package/dist/schema/__fixtures__/node-fixtures.js +127 -0
  143. package/dist/schema/base.d.ts +1 -1
  144. package/dist/schema/base.d.ts.map +1 -1
  145. package/dist/schema/base.js +9 -2
  146. package/dist/schema/collections.d.ts +1 -1
  147. package/dist/schema/collections.js +1 -1
  148. package/dist/schema/compiled-node-parsers.d.ts +40 -0
  149. package/dist/schema/compiled-node-parsers.d.ts.map +1 -0
  150. package/dist/schema/compiled-node-parsers.js +95 -0
  151. package/dist/schema/index.d.ts +73 -66
  152. package/dist/schema/index.d.ts.map +1 -1
  153. package/dist/schema/index.js +65 -57
  154. package/dist/schema/material.d.ts +1 -0
  155. package/dist/schema/material.d.ts.map +1 -1
  156. package/dist/schema/material.js +2 -1
  157. package/dist/schema/nodes/automatic-downspout.d.ts +17 -0
  158. package/dist/schema/nodes/automatic-downspout.d.ts.map +1 -0
  159. package/dist/schema/nodes/automatic-downspout.js +237 -0
  160. package/dist/schema/nodes/block.d.ts +107 -0
  161. package/dist/schema/nodes/block.d.ts.map +1 -0
  162. package/dist/schema/nodes/block.js +206 -0
  163. package/dist/schema/nodes/box-vent.d.ts +8 -2
  164. package/dist/schema/nodes/box-vent.d.ts.map +1 -1
  165. package/dist/schema/nodes/box-vent.js +4 -2
  166. package/dist/schema/nodes/building.d.ts +2 -2
  167. package/dist/schema/nodes/building.d.ts.map +1 -1
  168. package/dist/schema/nodes/building.js +8 -5
  169. package/dist/schema/nodes/cabinet.d.ts +26 -4
  170. package/dist/schema/nodes/cabinet.d.ts.map +1 -1
  171. package/dist/schema/nodes/cabinet.js +29 -8
  172. package/dist/schema/nodes/ceiling.d.ts +2 -2
  173. package/dist/schema/nodes/ceiling.js +5 -5
  174. package/dist/schema/nodes/chimney.d.ts +2 -2
  175. package/dist/schema/nodes/chimney.js +2 -2
  176. package/dist/schema/nodes/column.d.ts +7 -6
  177. package/dist/schema/nodes/column.d.ts.map +1 -1
  178. package/dist/schema/nodes/column.js +3 -2
  179. package/dist/schema/nodes/construction-dimension.d.ts +1 -1
  180. package/dist/schema/nodes/construction-dimension.js +2 -2
  181. package/dist/schema/nodes/cupola.d.ts +9 -1
  182. package/dist/schema/nodes/cupola.d.ts.map +1 -1
  183. package/dist/schema/nodes/cupola.js +4 -2
  184. package/dist/schema/nodes/door.d.ts +1 -1
  185. package/dist/schema/nodes/door.js +2 -2
  186. package/dist/schema/nodes/dormer.d.ts +45 -2
  187. package/dist/schema/nodes/dormer.d.ts.map +1 -1
  188. package/dist/schema/nodes/dormer.js +133 -9
  189. package/dist/schema/nodes/downspout.d.ts +11 -1
  190. package/dist/schema/nodes/downspout.d.ts.map +1 -1
  191. package/dist/schema/nodes/downspout.js +26 -2
  192. package/dist/schema/nodes/duct-fitting.d.ts +18 -1
  193. package/dist/schema/nodes/duct-fitting.d.ts.map +1 -1
  194. package/dist/schema/nodes/duct-fitting.js +26 -5
  195. package/dist/schema/nodes/duct-segment.d.ts +23 -1
  196. package/dist/schema/nodes/duct-segment.d.ts.map +1 -1
  197. package/dist/schema/nodes/duct-segment.js +21 -1
  198. package/dist/schema/nodes/duct-terminal.d.ts +1 -1
  199. package/dist/schema/nodes/duct-terminal.js +1 -1
  200. package/dist/schema/nodes/elevator.d.ts +1 -1
  201. package/dist/schema/nodes/elevator.js +2 -2
  202. package/dist/schema/nodes/eyebrow-vent.d.ts +8 -2
  203. package/dist/schema/nodes/eyebrow-vent.d.ts.map +1 -1
  204. package/dist/schema/nodes/eyebrow-vent.js +4 -2
  205. package/dist/schema/nodes/fence.d.ts +1 -1
  206. package/dist/schema/nodes/fence.js +2 -2
  207. package/dist/schema/nodes/guide.d.ts +1 -1
  208. package/dist/schema/nodes/guide.js +2 -2
  209. package/dist/schema/nodes/gutter.d.ts +36 -2
  210. package/dist/schema/nodes/gutter.d.ts.map +1 -1
  211. package/dist/schema/nodes/gutter.js +310 -3
  212. package/dist/schema/nodes/hanger-overrides.d.ts +7 -0
  213. package/dist/schema/nodes/hanger-overrides.d.ts.map +1 -0
  214. package/dist/schema/nodes/hanger-overrides.js +6 -0
  215. package/dist/schema/nodes/hvac-equipment.d.ts +1 -1
  216. package/dist/schema/nodes/hvac-equipment.js +1 -1
  217. package/dist/schema/nodes/imported-mesh.d.ts +40 -0
  218. package/dist/schema/nodes/imported-mesh.d.ts.map +1 -0
  219. package/dist/schema/nodes/imported-mesh.js +27 -0
  220. package/dist/schema/nodes/item.d.ts +3 -2
  221. package/dist/schema/nodes/item.d.ts.map +1 -1
  222. package/dist/schema/nodes/item.js +8 -3
  223. package/dist/schema/nodes/lean-to-extension.d.ts +212 -0
  224. package/dist/schema/nodes/lean-to-extension.d.ts.map +1 -0
  225. package/dist/schema/nodes/lean-to-extension.js +114 -0
  226. package/dist/schema/nodes/level.d.ts +2 -2
  227. package/dist/schema/nodes/level.d.ts.map +1 -1
  228. package/dist/schema/nodes/level.js +1 -1
  229. package/dist/schema/nodes/lineset.d.ts +1 -1
  230. package/dist/schema/nodes/lineset.js +1 -1
  231. package/dist/schema/nodes/liquid-line.d.ts +1 -1
  232. package/dist/schema/nodes/liquid-line.js +1 -1
  233. package/dist/schema/nodes/measurement.d.ts +1 -1
  234. package/dist/schema/nodes/measurement.js +2 -2
  235. package/dist/schema/nodes/pipe-fitting.d.ts +10 -2
  236. package/dist/schema/nodes/pipe-fitting.d.ts.map +1 -1
  237. package/dist/schema/nodes/pipe-fitting.js +7 -3
  238. package/dist/schema/nodes/pipe-segment.d.ts +24 -2
  239. package/dist/schema/nodes/pipe-segment.d.ts.map +1 -1
  240. package/dist/schema/nodes/pipe-segment.js +21 -1
  241. package/dist/schema/nodes/pipe-trap.d.ts +2 -2
  242. package/dist/schema/nodes/pipe-trap.js +1 -1
  243. package/dist/schema/nodes/ridge-vent.d.ts +2 -2
  244. package/dist/schema/nodes/ridge-vent.d.ts.map +1 -1
  245. package/dist/schema/nodes/ridge-vent.js +7 -4
  246. package/dist/schema/nodes/roof-segment-shape.d.ts +5 -1
  247. package/dist/schema/nodes/roof-segment-shape.d.ts.map +1 -1
  248. package/dist/schema/nodes/roof-segment-shape.js +65 -2
  249. package/dist/schema/nodes/roof-segment-walls.d.ts +4 -2
  250. package/dist/schema/nodes/roof-segment-walls.d.ts.map +1 -1
  251. package/dist/schema/nodes/roof-segment-walls.js +2 -2
  252. package/dist/schema/nodes/roof-segment.d.ts +42 -2
  253. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  254. package/dist/schema/nodes/roof-segment.js +81 -4
  255. package/dist/schema/nodes/roof.d.ts +23 -2
  256. package/dist/schema/nodes/roof.d.ts.map +1 -1
  257. package/dist/schema/nodes/roof.js +17 -3
  258. package/dist/schema/nodes/scan.d.ts +19 -2
  259. package/dist/schema/nodes/scan.d.ts.map +1 -1
  260. package/dist/schema/nodes/scan.js +13 -3
  261. package/dist/schema/nodes/shelf.d.ts +3 -3
  262. package/dist/schema/nodes/shelf.d.ts.map +1 -1
  263. package/dist/schema/nodes/shelf.js +3 -4
  264. package/dist/schema/nodes/site.d.ts +1 -1
  265. package/dist/schema/nodes/site.js +2 -2
  266. package/dist/schema/nodes/skylight.d.ts +5 -5
  267. package/dist/schema/nodes/skylight.js +2 -2
  268. package/dist/schema/nodes/slab.d.ts +1 -1
  269. package/dist/schema/nodes/slab.js +3 -3
  270. package/dist/schema/nodes/solar-panel.d.ts +1 -1
  271. package/dist/schema/nodes/solar-panel.js +3 -3
  272. package/dist/schema/nodes/spawn.d.ts +1 -1
  273. package/dist/schema/nodes/spawn.js +1 -1
  274. package/dist/schema/nodes/stair-segment.d.ts +1 -1
  275. package/dist/schema/nodes/stair-segment.js +2 -2
  276. package/dist/schema/nodes/stair.d.ts +2 -2
  277. package/dist/schema/nodes/stair.js +3 -3
  278. package/dist/schema/nodes/structural-grid.d.ts +1 -1
  279. package/dist/schema/nodes/structural-grid.js +1 -1
  280. package/dist/schema/nodes/turbine-vent.d.ts +8 -2
  281. package/dist/schema/nodes/turbine-vent.d.ts.map +1 -1
  282. package/dist/schema/nodes/turbine-vent.js +4 -2
  283. package/dist/schema/nodes/unit.d.ts +33 -0
  284. package/dist/schema/nodes/unit.d.ts.map +1 -0
  285. package/dist/schema/nodes/unit.js +13 -0
  286. package/dist/schema/nodes/wall.d.ts +5 -5
  287. package/dist/schema/nodes/wall.d.ts.map +1 -1
  288. package/dist/schema/nodes/wall.js +13 -6
  289. package/dist/schema/nodes/window.d.ts +10 -3
  290. package/dist/schema/nodes/window.d.ts.map +1 -1
  291. package/dist/schema/nodes/window.js +6 -2
  292. package/dist/schema/nodes/zone.d.ts +2 -2
  293. package/dist/schema/nodes/zone.js +2 -2
  294. package/dist/schema/scene-material.js +2 -2
  295. package/dist/schema/types.d.ts +815 -118
  296. package/dist/schema/types.d.ts.map +1 -1
  297. package/dist/schema/types.js +79 -46
  298. package/dist/services/alignment-anchors.d.ts +6 -11
  299. package/dist/services/alignment-anchors.d.ts.map +1 -1
  300. package/dist/services/alignment-anchors.js +7 -34
  301. package/dist/services/drag-session.d.ts +4 -4
  302. package/dist/services/drag-session.js +1 -1
  303. package/dist/services/hosting.d.ts +4 -10
  304. package/dist/services/hosting.d.ts.map +1 -1
  305. package/dist/services/hosting.js +6 -16
  306. package/dist/services/index.d.ts +16 -13
  307. package/dist/services/index.d.ts.map +1 -1
  308. package/dist/services/index.js +16 -13
  309. package/dist/services/level-height.d.ts +2 -2
  310. package/dist/services/level-height.js +3 -3
  311. package/dist/services/movement.d.ts +3 -3
  312. package/dist/services/movement.js +2 -2
  313. package/dist/services/port-connectivity.d.ts +1 -1
  314. package/dist/services/port-connectivity.js +1 -1
  315. package/dist/services/riser-diagram.d.ts +1 -1
  316. package/dist/services/shelf-board.d.ts +5 -0
  317. package/dist/services/shelf-board.d.ts.map +1 -0
  318. package/dist/services/shelf-board.js +15 -0
  319. package/dist/services/storey.d.ts +2 -2
  320. package/dist/services/storey.js +2 -2
  321. package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts +13 -0
  322. package/dist/services/surface-hosting-procedural-parity.fixtures.d.ts.map +1 -0
  323. package/dist/services/surface-hosting-procedural-parity.fixtures.js +4691 -0
  324. package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts +1060 -0
  325. package/dist/services/surface-hosting-shelf-parity.fixtures.d.ts.map +1 -0
  326. package/dist/services/surface-hosting-shelf-parity.fixtures.js +3127 -0
  327. package/dist/services/surface-hosting.d.ts +88 -0
  328. package/dist/services/surface-hosting.d.ts.map +1 -0
  329. package/dist/services/surface-hosting.js +268 -0
  330. package/dist/services/surface-region.d.ts +8 -0
  331. package/dist/services/surface-region.d.ts.map +1 -0
  332. package/dist/services/surface-region.js +44 -0
  333. package/dist/services/system-graph.d.ts +12 -1
  334. package/dist/services/system-graph.d.ts.map +1 -1
  335. package/dist/services/system-graph.js +36 -6
  336. package/dist/services/validate-dwv.d.ts +1 -1
  337. package/dist/services/validate-dwv.js +1 -1
  338. package/dist/store/actions/node-actions.d.ts +9 -2
  339. package/dist/store/actions/node-actions.d.ts.map +1 -1
  340. package/dist/store/actions/node-actions.js +475 -24
  341. package/dist/store/history-control.d.ts +3 -3
  342. package/dist/store/history-invalidation.d.ts +3 -0
  343. package/dist/store/history-invalidation.d.ts.map +1 -0
  344. package/dist/store/history-invalidation.js +72 -0
  345. package/dist/store/scene-hydration.d.ts +5 -0
  346. package/dist/store/scene-hydration.d.ts.map +1 -0
  347. package/dist/store/scene-hydration.js +57 -0
  348. package/dist/store/use-interactive.d.ts +2 -2
  349. package/dist/store/use-live-terrain.d.ts +1 -1
  350. package/dist/store/use-scene.d.ts +7 -4
  351. package/dist/store/use-scene.d.ts.map +1 -1
  352. package/dist/store/use-scene.js +361 -87
  353. package/dist/systems/elevator/elevator-dispatch.d.ts +2 -2
  354. package/dist/systems/elevator/elevator-dispatch.js +1 -1
  355. package/dist/systems/elevator/elevator-geometry.d.ts +1 -1
  356. package/dist/systems/elevator/elevator-opening-sync.d.ts +1 -1
  357. package/dist/systems/elevator/elevator-opening-sync.js +2 -2
  358. package/dist/systems/elevator/elevator-opening-system.js +3 -3
  359. package/dist/systems/elevator/elevator-runtime.d.ts +3 -3
  360. package/dist/systems/elevator/elevator-runtime.js +3 -3
  361. package/dist/systems/elevator/elevator-service.d.ts +1 -1
  362. package/dist/systems/elevator/elevator-service.js +1 -1
  363. package/dist/systems/fence/fence-centerline.d.ts +2 -2
  364. package/dist/systems/fence/fence-centerline.js +2 -2
  365. package/dist/systems/fence/fence-spline.d.ts +2 -2
  366. package/dist/systems/roof/roof-elevation-system.d.ts +3 -0
  367. package/dist/systems/roof/roof-elevation-system.d.ts.map +1 -0
  368. package/dist/systems/roof/roof-elevation-system.js +94 -0
  369. package/dist/systems/roof/roof-elevation.d.ts +4 -0
  370. package/dist/systems/roof/roof-elevation.d.ts.map +1 -0
  371. package/dist/systems/roof/roof-elevation.js +95 -0
  372. package/dist/systems/roof/roof-footprint.d.ts +17 -0
  373. package/dist/systems/roof/roof-footprint.d.ts.map +1 -0
  374. package/dist/systems/roof/roof-footprint.js +83 -0
  375. package/dist/systems/slab/slab-placement.d.ts +1 -1
  376. package/dist/systems/slab/slab-support.d.ts +1 -1
  377. package/dist/systems/slab/slab-support.js +4 -4
  378. package/dist/systems/stair/stair-flight.d.ts +17 -0
  379. package/dist/systems/stair/stair-flight.d.ts.map +1 -0
  380. package/dist/systems/stair/stair-flight.js +27 -0
  381. package/dist/systems/stair/stair-footprint.d.ts +1 -1
  382. package/dist/systems/stair/stair-opening-preview.d.ts +1621 -1267
  383. package/dist/systems/stair/stair-opening-preview.d.ts.map +1 -1
  384. package/dist/systems/stair/stair-opening-preview.js +2 -2
  385. package/dist/systems/stair/stair-opening-sync.d.ts +1 -1
  386. package/dist/systems/stair/stair-opening-sync.js +6 -6
  387. package/dist/systems/stair/stair-opening-system.d.ts +1 -0
  388. package/dist/systems/stair/stair-opening-system.d.ts.map +1 -1
  389. package/dist/systems/stair/stair-opening-system.js +100 -103
  390. package/dist/systems/stair/stair-rise.d.ts +1 -1
  391. package/dist/systems/stair/stair-rise.d.ts.map +1 -1
  392. package/dist/systems/stair/stair-rise.js +23 -24
  393. package/dist/systems/wall/wall-curve.d.ts +3 -2
  394. package/dist/systems/wall/wall-curve.d.ts.map +1 -1
  395. package/dist/systems/wall/wall-curve.js +73 -0
  396. package/dist/systems/wall/wall-footprint.d.ts +3 -2
  397. package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
  398. package/dist/systems/wall/wall-footprint.js +3 -2
  399. package/dist/systems/wall/wall-mitering.d.ts +1 -1
  400. package/dist/systems/wall/wall-mitering.js +1 -1
  401. package/dist/systems/wall/wall-move.d.ts +1 -1
  402. package/dist/systems/wall/wall-top.d.ts +1 -1
  403. package/dist/systems/wall/wall-topology.d.ts +2 -2
  404. package/dist/systems/wall/wall-topology.js +4 -4
  405. package/dist/utils/clone-scene-graph.d.ts +3 -3
  406. package/dist/utils/clone-scene-graph.d.ts.map +1 -1
  407. package/dist/utils/clone-scene-graph.js +35 -3
  408. package/dist/utils/scene-migrations.d.ts +3 -3
  409. package/dist/utils/scene-migrations.js +3 -3
  410. package/dist/utils/vertical-scene-migration.js +5 -5
  411. package/dist/validation/validate-build-json.d.ts +7 -1
  412. package/dist/validation/validate-build-json.d.ts.map +1 -1
  413. package/dist/validation/validate-build-json.js +92 -4
  414. package/package.json +23 -5
  415. package/dist/systems/elevator/elevator-runtime-system.d.ts +0 -2
  416. package/dist/systems/elevator/elevator-runtime-system.d.ts.map +0 -1
  417. package/dist/systems/elevator/elevator-runtime-system.js +0 -8
@@ -1,5 +1,30 @@
1
1
  import z from 'zod';
2
- export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2
+ /** A node schema as authored: `type` is a literal wrapped by `nodeType()`'s `.default()`. */
3
+ type NodeMember = z.ZodObject<{
4
+ type: z.ZodDefault<z.ZodLiteral<string>>;
5
+ } & z.core.$ZodLooseShape>;
6
+ /** The same schema with the discriminator narrowed back to its bare literal. */
7
+ type BareDiscriminator<T extends NodeMember> = z.ZodObject<Omit<T['shape'], 'type'> & {
8
+ type: ReturnType<T['shape']['type']['unwrap']>;
9
+ }>;
10
+ /**
11
+ * Assembles the node union on discriminators that claim exactly one value.
12
+ *
13
+ * `nodeType()` defaults the literal so a per-kind schema can fill `type` in
14
+ * (`WallNode.parse({ start, end })`), but a `.default()`-wrapped discriminator
15
+ * also claims `undefined` from zod 4.5 on (upstream #6432). With 48 members
16
+ * doing it, the union's lazily-built discriminator map collides on
17
+ * `undefined` and throws `Duplicate discriminator value` — as a plain Error,
18
+ * so it escapes `safeParse` and surfaces as a crash at the first parse.
19
+ *
20
+ * Each member is therefore projected to a clone whose `type` is the bare
21
+ * literal. Per-kind schemas keep their default; only the union's view of the
22
+ * discriminator narrows. `safeExtend` retains member refinements, including
23
+ * procedural recipe/parameter validation. Metadata lives in zod's global registry keyed by
24
+ * instance, so `.describe()` text has to be carried over to the clone by hand.
25
+ */
26
+ export declare const nodeUnion: <const T extends readonly [NodeMember, ...NodeMember[]]>(members: T) => z.ZodDiscriminatedUnion<{ [K in keyof T]: BareDiscriminator<T[K]>; }, "type">;
27
+ export declare const AnyNode: z.ZodDiscriminatedUnion<readonly [BareDiscriminator<z.ZodObject<{
3
28
  object: z.ZodDefault<z.ZodLiteral<"node">>;
4
29
  name: z.ZodOptional<z.ZodString>;
5
30
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -14,7 +39,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
14
39
  fov: z.ZodOptional<z.ZodNumber>;
15
40
  zoom: z.ZodOptional<z.ZodNumber>;
16
41
  }, z.core.$strip>>;
17
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
42
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
18
43
  id: z.ZodDefault<z.ZodTemplateLiteral<`site_${string}`>>;
19
44
  type: z.ZodDefault<z.ZodLiteral<"site">>;
20
45
  polygon: z.ZodDefault<z.ZodOptional<z.ZodObject<{
@@ -31,7 +56,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
31
56
  heights: z.ZodString;
32
57
  }, z.core.$strip>>;
33
58
  children: z.ZodDefault<z.ZodArray<z.ZodString>>;
34
- }, z.core.$strip>, z.ZodObject<{
59
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
35
60
  object: z.ZodDefault<z.ZodLiteral<"node">>;
36
61
  name: z.ZodOptional<z.ZodString>;
37
62
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -46,13 +71,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
46
71
  fov: z.ZodOptional<z.ZodNumber>;
47
72
  zoom: z.ZodOptional<z.ZodNumber>;
48
73
  }, z.core.$strip>>;
49
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
74
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
50
75
  id: z.ZodDefault<z.ZodTemplateLiteral<`building_${string}`>>;
51
76
  type: z.ZodDefault<z.ZodLiteral<"building">>;
52
- children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>]>>>;
77
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`unit_${string}`>>]>>>;
53
78
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
54
79
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
55
- }, z.core.$strip>, z.ZodObject<{
80
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
56
81
  object: z.ZodDefault<z.ZodLiteral<"node">>;
57
82
  name: z.ZodOptional<z.ZodString>;
58
83
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -67,7 +92,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
67
92
  fov: z.ZodOptional<z.ZodNumber>;
68
93
  zoom: z.ZodOptional<z.ZodNumber>;
69
94
  }, z.core.$strip>>;
70
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
95
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
71
96
  id: z.ZodDefault<z.ZodTemplateLiteral<`elevator_${string}`>>;
72
97
  type: z.ZodDefault<z.ZodLiteral<"elevator">>;
73
98
  material: z.ZodOptional<z.ZodObject<{
@@ -137,7 +162,33 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
137
162
  speed: z.ZodDefault<z.ZodNumber>;
138
163
  doorDurationMs: z.ZodDefault<z.ZodNumber>;
139
164
  dwellMs: z.ZodDefault<z.ZodNumber>;
140
- }, z.core.$strip>, z.ZodObject<{
165
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
166
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
167
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
168
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
169
+ camera: z.ZodOptional<z.ZodObject<{
170
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
171
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
172
+ mode: z.ZodDefault<z.ZodEnum<{
173
+ perspective: "perspective";
174
+ orthographic: "orthographic";
175
+ }>>;
176
+ fov: z.ZodOptional<z.ZodNumber>;
177
+ zoom: z.ZodOptional<z.ZodNumber>;
178
+ }, z.core.$strip>>;
179
+ id: z.ZodDefault<z.ZodTemplateLiteral<`unit_${string}`>>;
180
+ type: z.ZodDefault<z.ZodLiteral<"unit">>;
181
+ name: z.ZodDefault<z.ZodString>;
182
+ kind: z.ZodDefault<z.ZodEnum<{
183
+ apartment: "apartment";
184
+ "hotel-room": "hotel-room";
185
+ commercial: "commercial";
186
+ common: "common";
187
+ }>>;
188
+ members: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`zone_${string}`>>>>;
189
+ color: z.ZodDefault<z.ZodString>;
190
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
191
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
141
192
  object: z.ZodDefault<z.ZodLiteral<"node">>;
142
193
  name: z.ZodOptional<z.ZodString>;
143
194
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -152,14 +203,14 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
152
203
  fov: z.ZodOptional<z.ZodNumber>;
153
204
  zoom: z.ZodOptional<z.ZodNumber>;
154
205
  }, z.core.$strip>>;
155
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
206
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
156
207
  id: z.ZodDefault<z.ZodTemplateLiteral<`level_${string}`>>;
157
208
  type: z.ZodDefault<z.ZodLiteral<"level">>;
158
- children: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`item_${string}` | `ceiling_${string}` | `column_${string}` | `wall_${string}` | `fence_${string}` | `construction-dimension_${string}` | `structural-grid_${string}` | `zone_${string}` | `slab_${string}` | `roof_${string}` | `stair_${string}` | `scan_${string}` | `guide_${string}` | `measurement_${string}` | `spawn_${string}` | `shelf_${string}` | `duct-segment_${string}` | `duct-fitting_${string}` | `duct-terminal_${string}` | `hvac-equipment_${string}` | `lineset_${string}` | `liquid-line_${string}` | `pipe-segment_${string}` | `pipe-fitting_${string}` | `pipe-trap_${string}`, string>>>>;
209
+ children: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<`block_${string}` | `ceiling_${string}` | `item_${string}` | `procedural-item_${string}` | `column_${string}` | `construction-dimension_${string}` | `wall_${string}` | `roof_${string}` | `slab_${string}` | `fence_${string}` | `structural-grid_${string}` | `imesh_${string}` | `zone_${string}` | `stair_${string}` | `scan_${string}` | `guide_${string}` | `measurement_${string}` | `spawn_${string}` | `shelf_${string}` | `duct-segment_${string}` | `duct-fitting_${string}` | `duct-terminal_${string}` | `hvac-equipment_${string}` | `lineset_${string}` | `liquid-line_${string}` | `pipe-segment_${string}` | `pipe-fitting_${string}` | `pipe-trap_${string}`, string>>>>;
159
210
  level: z.ZodDefault<z.ZodNumber>;
160
211
  baseElevation: z.ZodDefault<z.ZodNumber>;
161
212
  height: z.ZodOptional<z.ZodNumber>;
162
- }, z.core.$strip>, z.ZodObject<{
213
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
163
214
  object: z.ZodDefault<z.ZodLiteral<"node">>;
164
215
  name: z.ZodOptional<z.ZodString>;
165
216
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -174,9 +225,160 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
174
225
  fov: z.ZodOptional<z.ZodNumber>;
175
226
  zoom: z.ZodOptional<z.ZodNumber>;
176
227
  }, z.core.$strip>>;
177
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
228
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
229
+ id: z.ZodDefault<z.ZodTemplateLiteral<`leanto_${string}`>>;
230
+ type: z.ZodDefault<z.ZodLiteral<"lean-to-extension">>;
231
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
232
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
233
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>]>>>;
234
+ canopyForm: z.ZodDefault<z.ZodEnum<{
235
+ gable: "gable";
236
+ mono: "mono";
237
+ butterfly: "butterfly";
238
+ }>>;
239
+ hostKind: z.ZodDefault<z.ZodEnum<{
240
+ wall: "wall";
241
+ "slab-edge": "slab-edge";
242
+ freestanding: "freestanding";
243
+ "conical-roof": "conical-roof";
244
+ }>>;
245
+ hostHeightOffset: z.ZodDefault<z.ZodNumber>;
246
+ hostSlabId: z.ZodOptional<z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>>;
247
+ hostSlabEdgeIndex: z.ZodOptional<z.ZodNumber>;
248
+ hostSlabEdgeT: z.ZodOptional<z.ZodNumber>;
249
+ span: z.ZodDefault<z.ZodNumber>;
250
+ autoSpan: z.ZodDefault<z.ZodBoolean>;
251
+ projection: z.ZodDefault<z.ZodNumber>;
252
+ spanArcCenterZ: z.ZodOptional<z.ZodNumber>;
253
+ spanArcRadius: z.ZodOptional<z.ZodNumber>;
254
+ highEdgeHeight: z.ZodDefault<z.ZodNumber>;
255
+ lowEdgeHeight: z.ZodDefault<z.ZodNumber>;
256
+ pitch: z.ZodDefault<z.ZodNumber>;
257
+ resizeLock: z.ZodDefault<z.ZodEnum<{
258
+ "preserve-high-edge": "preserve-high-edge";
259
+ "preserve-low-edge": "preserve-low-edge";
260
+ "preserve-pitch": "preserve-pitch";
261
+ }>>;
262
+ leftEndCondition: z.ZodDefault<z.ZodEnum<{
263
+ open: "open";
264
+ "wall-abutment": "wall-abutment";
265
+ joined: "joined";
266
+ }>>;
267
+ rightEndCondition: z.ZodDefault<z.ZodEnum<{
268
+ open: "open";
269
+ "wall-abutment": "wall-abutment";
270
+ joined: "joined";
271
+ }>>;
272
+ autoMiterCorners: z.ZodDefault<z.ZodBoolean>;
273
+ sideFlashing: z.ZodDefault<z.ZodBoolean>;
274
+ flashingProjection: z.ZodDefault<z.ZodNumber>;
275
+ flashingHeight: z.ZodDefault<z.ZodNumber>;
276
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
277
+ highSideMode: z.ZodDefault<z.ZodEnum<{
278
+ "wall-ledger": "wall-ledger";
279
+ "independent-high-beam": "independent-high-beam";
280
+ }>>;
281
+ ledgerVerticalOffset: z.ZodDefault<z.ZodNumber>;
282
+ lowBeamInset: z.ZodDefault<z.ZodNumber>;
283
+ gutterEnabled: z.ZodDefault<z.ZodBoolean>;
284
+ gutterProfile: z.ZodDefault<z.ZodEnum<{
285
+ box: "box";
286
+ "k-style": "k-style";
287
+ "half-round": "half-round";
288
+ }>>;
289
+ gutterSize: z.ZodDefault<z.ZodNumber>;
290
+ downspoutEnabled: z.ZodDefault<z.ZodBoolean>;
291
+ downspoutPosition: z.ZodDefault<z.ZodNumber>;
292
+ connectionMode: z.ZodDefault<z.ZodEnum<{
293
+ manual: "manual";
294
+ auto: "auto";
295
+ }>>;
296
+ hostRoofId: z.ZodOptional<z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>>;
297
+ hostRoofSegmentId: z.ZodOptional<z.ZodString>;
298
+ hostRoofEdge: z.ZodOptional<z.ZodEnum<{
299
+ "+X": "+X";
300
+ "-X": "-X";
301
+ "+Z": "+Z";
302
+ "-Z": "-Z";
303
+ }>>;
304
+ hostRoofEdgeRange: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
305
+ connectionOffset: z.ZodDefault<z.ZodNumber>;
306
+ connectionInset: z.ZodDefault<z.ZodNumber>;
307
+ matchHostRoofMaterial: z.ZodDefault<z.ZodBoolean>;
308
+ matchHostRoofStructure: z.ZodDefault<z.ZodBoolean>;
309
+ roofThickness: z.ZodDefault<z.ZodNumber>;
310
+ shingleThickness: z.ZodDefault<z.ZodNumber>;
311
+ highOverhang: z.ZodDefault<z.ZodNumber>;
312
+ lowOverhang: z.ZodDefault<z.ZodNumber>;
313
+ leftOverhang: z.ZodDefault<z.ZodNumber>;
314
+ rightOverhang: z.ZodDefault<z.ZodNumber>;
315
+ coveringType: z.ZodDefault<z.ZodEnum<{
316
+ generic: "generic";
317
+ shingle: "shingle";
318
+ "metal-panel": "metal-panel";
319
+ }>>;
320
+ beamWidth: z.ZodDefault<z.ZodNumber>;
321
+ beamHeight: z.ZodDefault<z.ZodNumber>;
322
+ ledgerDepth: z.ZodDefault<z.ZodNumber>;
323
+ ledgerHeight: z.ZodDefault<z.ZodNumber>;
324
+ rafterWidth: z.ZodDefault<z.ZodNumber>;
325
+ rafterHeight: z.ZodDefault<z.ZodNumber>;
326
+ rafterSpacing: z.ZodDefault<z.ZodNumber>;
327
+ rafterEndInset: z.ZodDefault<z.ZodNumber>;
328
+ framingStrategy: z.ZodDefault<z.ZodEnum<{
329
+ hidden: "hidden";
330
+ rafters: "rafters";
331
+ purlins: "purlins";
332
+ "covering-specific": "covering-specific";
333
+ }>>;
334
+ purlinWidth: z.ZodDefault<z.ZodNumber>;
335
+ purlinHeight: z.ZodDefault<z.ZodNumber>;
336
+ purlinSpacing: z.ZodDefault<z.ZodNumber>;
337
+ postWidth: z.ZodDefault<z.ZodNumber>;
338
+ postDepth: z.ZodDefault<z.ZodNumber>;
339
+ postCount: z.ZodDefault<z.ZodNumber>;
340
+ postLayoutMode: z.ZodDefault<z.ZodEnum<{
341
+ count: "count";
342
+ "target-spacing": "target-spacing";
343
+ }>>;
344
+ postSpacing: z.ZodDefault<z.ZodNumber>;
345
+ postInset: z.ZodDefault<z.ZodNumber>;
346
+ omittedPostSlots: z.ZodDefault<z.ZodArray<z.ZodObject<{
347
+ side: z.ZodEnum<{
348
+ low: "low";
349
+ high: "high";
350
+ }>;
351
+ index: z.ZodNumber;
352
+ layoutCount: z.ZodNumber;
353
+ }, z.core.$strip>>>;
354
+ postBracing: z.ZodDefault<z.ZodEnum<{
355
+ none: "none";
356
+ knee: "knee";
357
+ }>>;
358
+ footingStyle: z.ZodDefault<z.ZodEnum<{
359
+ none: "none";
360
+ "base-plate": "base-plate";
361
+ "concrete-pad": "concrete-pad";
362
+ }>>;
363
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
364
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
365
+ name: z.ZodOptional<z.ZodString>;
366
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
367
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
368
+ camera: z.ZodOptional<z.ZodObject<{
369
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
370
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
371
+ mode: z.ZodDefault<z.ZodEnum<{
372
+ perspective: "perspective";
373
+ orthographic: "orthographic";
374
+ }>>;
375
+ fov: z.ZodOptional<z.ZodNumber>;
376
+ zoom: z.ZodOptional<z.ZodNumber>;
377
+ }, z.core.$strip>>;
378
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
178
379
  id: z.ZodDefault<z.ZodTemplateLiteral<`column_${string}`>>;
179
380
  type: z.ZodDefault<z.ZodLiteral<"column">>;
381
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
180
382
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
181
383
  rotation: z.ZodDefault<z.ZodNumber>;
182
384
  supportSlabId: z.ZodOptional<z.ZodString>;
@@ -273,9 +475,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
273
475
  capitalCarvingLevel: z.ZodDefault<z.ZodNumber>;
274
476
  ringCount: z.ZodDefault<z.ZodNumber>;
275
477
  ringPlacement: z.ZodDefault<z.ZodEnum<{
478
+ top: "top";
276
479
  ends: "ends";
277
480
  even: "even";
278
- top: "top";
279
481
  bottom: "bottom";
280
482
  }>>;
281
483
  ringThickness: z.ZodDefault<z.ZodNumber>;
@@ -294,15 +496,15 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
294
496
  }>>;
295
497
  latheRingCount: z.ZodDefault<z.ZodNumber>;
296
498
  latheRingSpacing: z.ZodDefault<z.ZodEnum<{
499
+ top: "top";
297
500
  ends: "ends";
298
501
  even: "even";
299
- top: "top";
300
502
  bottom: "bottom";
301
503
  }>>;
302
504
  carvingLevel: z.ZodDefault<z.ZodNumber>;
303
505
  carvingPlacement: z.ZodDefault<z.ZodEnum<{
304
- shaft: "shaft";
305
506
  base: "base";
507
+ shaft: "shaft";
306
508
  capital: "capital";
307
509
  all: "all";
308
510
  }>>;
@@ -363,7 +565,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
363
565
  }, z.core.$strip>>;
364
566
  materialPreset: z.ZodOptional<z.ZodString>;
365
567
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
366
- }, z.core.$strip>, z.ZodObject<{
568
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
367
569
  object: z.ZodDefault<z.ZodLiteral<"node">>;
368
570
  name: z.ZodOptional<z.ZodString>;
369
571
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -378,7 +580,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
378
580
  fov: z.ZodOptional<z.ZodNumber>;
379
581
  zoom: z.ZodOptional<z.ZodNumber>;
380
582
  }, z.core.$strip>>;
381
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
583
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
382
584
  id: z.ZodDefault<z.ZodTemplateLiteral<`construction-dimension_${string}`>>;
383
585
  type: z.ZodDefault<z.ZodLiteral<"construction-dimension">>;
384
586
  anchors: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodObject<{
@@ -465,7 +667,46 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
465
667
  suppressedSegmentIndexes: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
466
668
  }, z.core.$strip>>>;
467
669
  controllingDimensionId: z.ZodDefault<z.ZodNullable<z.ZodDefault<z.ZodTemplateLiteral<`construction-dimension_${string}`>>>>;
468
- }, z.core.$strip>, z.ZodObject<{
670
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
671
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
672
+ name: z.ZodOptional<z.ZodString>;
673
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
674
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
675
+ camera: z.ZodOptional<z.ZodObject<{
676
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
677
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
678
+ mode: z.ZodDefault<z.ZodEnum<{
679
+ perspective: "perspective";
680
+ orthographic: "orthographic";
681
+ }>>;
682
+ fov: z.ZodOptional<z.ZodNumber>;
683
+ zoom: z.ZodOptional<z.ZodNumber>;
684
+ }, z.core.$strip>>;
685
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
686
+ id: z.ZodDefault<z.ZodTemplateLiteral<`block_${string}`>>;
687
+ type: z.ZodDefault<z.ZodLiteral<"block">>;
688
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
689
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
690
+ rotation: z.ZodDefault<z.ZodNumber>;
691
+ supportSlabId: z.ZodOptional<z.ZodString>;
692
+ topology: z.ZodDefault<z.ZodObject<{
693
+ vertices: z.ZodArray<z.ZodObject<{
694
+ id: z.ZodString;
695
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
696
+ }, z.core.$strip>>;
697
+ edges: z.ZodArray<z.ZodObject<{
698
+ id: z.ZodString;
699
+ vertexIds: z.ZodTuple<[z.ZodString, z.ZodString], null>;
700
+ }, z.core.$strip>>;
701
+ faces: z.ZodArray<z.ZodObject<{
702
+ id: z.ZodString;
703
+ vertexIds: z.ZodArray<z.ZodString>;
704
+ materialSlot: z.ZodDefault<z.ZodString>;
705
+ }, z.core.$strip>>;
706
+ }, z.core.$strip>>;
707
+ slots: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
708
+ slotNames: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
709
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
469
710
  object: z.ZodDefault<z.ZodLiteral<"node">>;
470
711
  name: z.ZodOptional<z.ZodString>;
471
712
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -480,7 +721,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
480
721
  fov: z.ZodOptional<z.ZodNumber>;
481
722
  zoom: z.ZodOptional<z.ZodNumber>;
482
723
  }, z.core.$strip>>;
483
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
724
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
484
725
  id: z.ZodDefault<z.ZodTemplateLiteral<`structural-grid_${string}`>>;
485
726
  type: z.ZodDefault<z.ZodLiteral<"structural-grid">>;
486
727
  start: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
@@ -488,7 +729,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
488
729
  label: z.ZodDefault<z.ZodString>;
489
730
  showStartBubble: z.ZodDefault<z.ZodBoolean>;
490
731
  showEndBubble: z.ZodDefault<z.ZodBoolean>;
491
- }, z.core.$strip>, z.ZodObject<{
732
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
492
733
  object: z.ZodDefault<z.ZodLiteral<"node">>;
493
734
  name: z.ZodOptional<z.ZodString>;
494
735
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -503,10 +744,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
503
744
  fov: z.ZodOptional<z.ZodNumber>;
504
745
  zoom: z.ZodOptional<z.ZodNumber>;
505
746
  }, z.core.$strip>>;
506
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
747
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
507
748
  id: z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>;
508
749
  type: z.ZodDefault<z.ZodLiteral<"wall">>;
509
- children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>]>>>;
750
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`procedural-item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`leanto_${string}`>>]>>>;
510
751
  material: z.ZodOptional<z.ZodObject<{
511
752
  id: z.ZodOptional<z.ZodString>;
512
753
  preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
@@ -619,7 +860,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
619
860
  lowerHeight: z.ZodDefault<z.ZodNumber>;
620
861
  middleHeight: z.ZodDefault<z.ZodNumber>;
621
862
  upperHeight: z.ZodDefault<z.ZodNumber>;
622
- }, z.core.$strip>>>;
863
+ }, z.core.$strip>, unknown>>;
623
864
  skirting: z.ZodOptional<z.ZodObject<{
624
865
  enabled: z.ZodDefault<z.ZodBoolean>;
625
866
  sides: z.ZodDefault<z.ZodEnum<{
@@ -722,7 +963,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
722
963
  interior: "interior";
723
964
  exterior: "exterior";
724
965
  }>>;
725
- }, z.core.$strip>, z.ZodObject<{
966
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
726
967
  object: z.ZodDefault<z.ZodLiteral<"node">>;
727
968
  name: z.ZodOptional<z.ZodString>;
728
969
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -737,7 +978,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
737
978
  fov: z.ZodOptional<z.ZodNumber>;
738
979
  zoom: z.ZodOptional<z.ZodNumber>;
739
980
  }, z.core.$strip>>;
740
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
981
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
741
982
  id: z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>;
742
983
  type: z.ZodDefault<z.ZodLiteral<"fence">>;
743
984
  material: z.ZodOptional<z.ZodObject<{
@@ -807,7 +1048,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
807
1048
  privacy: "privacy";
808
1049
  horizontal: "horizontal";
809
1050
  }>>;
810
- }, z.core.$strip>, z.ZodObject<{
1051
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
811
1052
  object: z.ZodDefault<z.ZodLiteral<"node">>;
812
1053
  name: z.ZodOptional<z.ZodString>;
813
1054
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -822,7 +1063,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
822
1063
  fov: z.ZodOptional<z.ZodNumber>;
823
1064
  zoom: z.ZodOptional<z.ZodNumber>;
824
1065
  }, z.core.$strip>>;
825
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1066
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
826
1067
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
827
1068
  rotation: z.ZodDefault<z.ZodNumber>;
828
1069
  supportSlabId: z.ZodOptional<z.ZodString>;
@@ -844,6 +1085,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
844
1085
  shaker: "shaker";
845
1086
  "raised-arch": "raised-arch";
846
1087
  }>>;
1088
+ panelReady: z.ZodDefault<z.ZodBoolean>;
847
1089
  handleStyle: z.ZodDefault<z.ZodEnum<{
848
1090
  none: "none";
849
1091
  bar: "bar";
@@ -1007,7 +1249,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1007
1249
  base: "base";
1008
1250
  tall: "tall";
1009
1251
  }>>;
1010
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>>>;
1252
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1011
1253
  barLedge: z.ZodOptional<z.ZodObject<{
1012
1254
  edge: z.ZodDefault<z.ZodEnum<{
1013
1255
  back: "back";
@@ -1018,7 +1260,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1018
1260
  depth: z.ZodDefault<z.ZodNumber>;
1019
1261
  }, z.core.$strip>>;
1020
1262
  withWaterfall: z.ZodDefault<z.ZodBoolean>;
1021
- }, z.core.$strip>, z.ZodObject<{
1263
+ withFinishedEnds: z.ZodDefault<z.ZodBoolean>;
1264
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1022
1265
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1023
1266
  name: z.ZodOptional<z.ZodString>;
1024
1267
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1033,7 +1276,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1033
1276
  fov: z.ZodOptional<z.ZodNumber>;
1034
1277
  zoom: z.ZodOptional<z.ZodNumber>;
1035
1278
  }, z.core.$strip>>;
1036
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1279
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1037
1280
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1038
1281
  rotation: z.ZodDefault<z.ZodNumber>;
1039
1282
  supportSlabId: z.ZodOptional<z.ZodString>;
@@ -1055,6 +1298,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1055
1298
  shaker: "shaker";
1056
1299
  "raised-arch": "raised-arch";
1057
1300
  }>>;
1301
+ panelReady: z.ZodDefault<z.ZodBoolean>;
1058
1302
  handleStyle: z.ZodDefault<z.ZodEnum<{
1059
1303
  none: "none";
1060
1304
  bar: "bar";
@@ -1213,7 +1457,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1213
1457
  }, z.core.$strip>], "type">>>;
1214
1458
  id: z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>;
1215
1459
  type: z.ZodDefault<z.ZodLiteral<"cabinet-module">>;
1216
- children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`cabinet-module_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`cabinet_${string}`>>]>>>;
1460
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1217
1461
  cabinetType: z.ZodDefault<z.ZodEnum<{
1218
1462
  base: "base";
1219
1463
  tall: "tall";
@@ -1227,7 +1471,14 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1227
1471
  left: "left";
1228
1472
  }>>;
1229
1473
  cornerShelf: z.ZodOptional<z.ZodBoolean>;
1230
- }, z.core.$strip>, z.ZodObject<{
1474
+ topFinish: z.ZodDefault<z.ZodEnum<{
1475
+ trim: "trim";
1476
+ none: "none";
1477
+ "top-cabinet": "top-cabinet";
1478
+ }>>;
1479
+ topFinishHeight: z.ZodDefault<z.ZodNumber>;
1480
+ topFinishDepth: z.ZodDefault<z.ZodNumber>;
1481
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1231
1482
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1232
1483
  name: z.ZodOptional<z.ZodString>;
1233
1484
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1242,7 +1493,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1242
1493
  fov: z.ZodOptional<z.ZodNumber>;
1243
1494
  zoom: z.ZodOptional<z.ZodNumber>;
1244
1495
  }, z.core.$strip>>;
1245
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1496
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1246
1497
  id: z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>;
1247
1498
  type: z.ZodDefault<z.ZodLiteral<"item">>;
1248
1499
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -1252,7 +1503,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1252
1503
  front: "front";
1253
1504
  back: "back";
1254
1505
  }>>;
1255
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
1506
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1256
1507
  wallId: z.ZodOptional<z.ZodString>;
1257
1508
  wallT: z.ZodOptional<z.ZodNumber>;
1258
1509
  roofSegmentId: z.ZodOptional<z.ZodString>;
@@ -1262,6 +1513,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1262
1513
  right: "right";
1263
1514
  left: "left";
1264
1515
  }>>;
1516
+ blockFaceId: z.ZodOptional<z.ZodString>;
1265
1517
  supportSlabId: z.ZodOptional<z.ZodString>;
1266
1518
  collectionIds: z.ZodOptional<z.ZodArray<z.ZodCustom<`collection_${string}`, `collection_${string}`>>>;
1267
1519
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -1338,7 +1590,301 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1338
1590
  }, z.core.$strip>], "kind">>>;
1339
1591
  }, z.core.$strip>>;
1340
1592
  }, z.core.$strip>;
1341
- }, z.core.$strip>, z.ZodObject<{
1593
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1594
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1595
+ name: z.ZodOptional<z.ZodString>;
1596
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1597
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1598
+ camera: z.ZodOptional<z.ZodObject<{
1599
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1600
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1601
+ mode: z.ZodDefault<z.ZodEnum<{
1602
+ perspective: "perspective";
1603
+ orthographic: "orthographic";
1604
+ }>>;
1605
+ fov: z.ZodOptional<z.ZodNumber>;
1606
+ zoom: z.ZodOptional<z.ZodNumber>;
1607
+ }, z.core.$strip>>;
1608
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1609
+ id: z.ZodDefault<z.ZodTemplateLiteral<`procedural-item_${string}`>>;
1610
+ type: z.ZodDefault<z.ZodLiteral<"procedural-item">>;
1611
+ recipe: z.ZodPipe<z.ZodCustom<{
1612
+ version: 1;
1613
+ name: string;
1614
+ description: string;
1615
+ parameters: {
1616
+ id: string;
1617
+ label: string;
1618
+ default: number;
1619
+ min: number;
1620
+ max: number;
1621
+ step: number;
1622
+ unit: "count" | "m" | "rad";
1623
+ part?: string | undefined;
1624
+ axis?: "x" | "y" | "z" | undefined;
1625
+ }[];
1626
+ slots: {
1627
+ id: string;
1628
+ label: string;
1629
+ color: string;
1630
+ finish?: "wood" | "glass" | "metal" | undefined;
1631
+ }[];
1632
+ parts: {
1633
+ id: string;
1634
+ label: string;
1635
+ count: import("../procedural-items/index.js").Expr;
1636
+ shapes: {
1637
+ id: string;
1638
+ primitive: "box" | "roundedBox" | "cylinder";
1639
+ slot: string;
1640
+ size: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1641
+ position: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1642
+ rotation?: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr] | undefined;
1643
+ radius?: import("../procedural-items/index.js").Expr | undefined;
1644
+ support?: boolean | undefined;
1645
+ }[];
1646
+ }[];
1647
+ constraints: {
1648
+ left: import("../procedural-items/index.js").Expr;
1649
+ relation: "lte" | "gte";
1650
+ right: import("../procedural-items/index.js").Expr;
1651
+ message: string;
1652
+ }[];
1653
+ classification?: {
1654
+ category: string;
1655
+ functionTags: string[];
1656
+ tags: string[];
1657
+ } | undefined;
1658
+ mounting?: {
1659
+ attachTo: "ceiling" | "wall-side";
1660
+ reference: string;
1661
+ } | undefined;
1662
+ surfaces?: {
1663
+ id: string;
1664
+ label: string;
1665
+ position: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1666
+ size: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1667
+ part?: string | undefined;
1668
+ rotation?: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr] | undefined;
1669
+ }[] | undefined;
1670
+ }, {
1671
+ version: 1;
1672
+ name: string;
1673
+ description: string;
1674
+ parameters: {
1675
+ id: string;
1676
+ label: string;
1677
+ default: number;
1678
+ min: number;
1679
+ max: number;
1680
+ step: number;
1681
+ unit: "count" | "m" | "rad";
1682
+ part?: string | undefined;
1683
+ axis?: "x" | "y" | "z" | undefined;
1684
+ }[];
1685
+ slots: {
1686
+ id: string;
1687
+ label: string;
1688
+ color: string;
1689
+ finish?: "wood" | "glass" | "metal" | undefined;
1690
+ }[];
1691
+ parts: {
1692
+ id: string;
1693
+ label: string;
1694
+ count: import("../procedural-items/index.js").Expr;
1695
+ shapes: {
1696
+ id: string;
1697
+ primitive: "box" | "roundedBox" | "cylinder";
1698
+ slot: string;
1699
+ size: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1700
+ position: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1701
+ rotation?: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr] | undefined;
1702
+ radius?: import("../procedural-items/index.js").Expr | undefined;
1703
+ support?: boolean | undefined;
1704
+ }[];
1705
+ }[];
1706
+ constraints: {
1707
+ left: import("../procedural-items/index.js").Expr;
1708
+ relation: "lte" | "gte";
1709
+ right: import("../procedural-items/index.js").Expr;
1710
+ message: string;
1711
+ }[];
1712
+ classification?: {
1713
+ category: string;
1714
+ functionTags: string[];
1715
+ tags: string[];
1716
+ } | undefined;
1717
+ mounting?: {
1718
+ attachTo: "ceiling" | "wall-side";
1719
+ reference: string;
1720
+ } | undefined;
1721
+ surfaces?: {
1722
+ id: string;
1723
+ label: string;
1724
+ position: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1725
+ size: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1726
+ part?: string | undefined;
1727
+ rotation?: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr] | undefined;
1728
+ }[] | undefined;
1729
+ }>, z.ZodTransform<{
1730
+ version: 1;
1731
+ name: string;
1732
+ description: string;
1733
+ parameters: {
1734
+ id: string;
1735
+ label: string;
1736
+ default: number;
1737
+ min: number;
1738
+ max: number;
1739
+ step: number;
1740
+ unit: "count" | "m" | "rad";
1741
+ part?: string | undefined;
1742
+ axis?: "x" | "y" | "z" | undefined;
1743
+ }[];
1744
+ slots: {
1745
+ id: string;
1746
+ label: string;
1747
+ color: string;
1748
+ finish?: "wood" | "glass" | "metal" | undefined;
1749
+ }[];
1750
+ parts: {
1751
+ id: string;
1752
+ label: string;
1753
+ count: import("../procedural-items/index.js").Expr;
1754
+ shapes: {
1755
+ id: string;
1756
+ primitive: "box" | "roundedBox" | "cylinder";
1757
+ slot: string;
1758
+ size: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1759
+ position: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1760
+ rotation?: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr] | undefined;
1761
+ radius?: import("../procedural-items/index.js").Expr | undefined;
1762
+ support?: boolean | undefined;
1763
+ }[];
1764
+ }[];
1765
+ constraints: {
1766
+ left: import("../procedural-items/index.js").Expr;
1767
+ relation: "lte" | "gte";
1768
+ right: import("../procedural-items/index.js").Expr;
1769
+ message: string;
1770
+ }[];
1771
+ classification?: {
1772
+ category: string;
1773
+ functionTags: string[];
1774
+ tags: string[];
1775
+ } | undefined;
1776
+ mounting?: {
1777
+ attachTo: "ceiling" | "wall-side";
1778
+ reference: string;
1779
+ } | undefined;
1780
+ surfaces?: {
1781
+ id: string;
1782
+ label: string;
1783
+ position: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1784
+ size: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1785
+ part?: string | undefined;
1786
+ rotation?: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr] | undefined;
1787
+ }[] | undefined;
1788
+ }, {
1789
+ version: 1;
1790
+ name: string;
1791
+ description: string;
1792
+ parameters: {
1793
+ id: string;
1794
+ label: string;
1795
+ default: number;
1796
+ min: number;
1797
+ max: number;
1798
+ step: number;
1799
+ unit: "count" | "m" | "rad";
1800
+ part?: string | undefined;
1801
+ axis?: "x" | "y" | "z" | undefined;
1802
+ }[];
1803
+ slots: {
1804
+ id: string;
1805
+ label: string;
1806
+ color: string;
1807
+ finish?: "wood" | "glass" | "metal" | undefined;
1808
+ }[];
1809
+ parts: {
1810
+ id: string;
1811
+ label: string;
1812
+ count: import("../procedural-items/index.js").Expr;
1813
+ shapes: {
1814
+ id: string;
1815
+ primitive: "box" | "roundedBox" | "cylinder";
1816
+ slot: string;
1817
+ size: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1818
+ position: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1819
+ rotation?: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr] | undefined;
1820
+ radius?: import("../procedural-items/index.js").Expr | undefined;
1821
+ support?: boolean | undefined;
1822
+ }[];
1823
+ }[];
1824
+ constraints: {
1825
+ left: import("../procedural-items/index.js").Expr;
1826
+ relation: "lte" | "gte";
1827
+ right: import("../procedural-items/index.js").Expr;
1828
+ message: string;
1829
+ }[];
1830
+ classification?: {
1831
+ category: string;
1832
+ functionTags: string[];
1833
+ tags: string[];
1834
+ } | undefined;
1835
+ mounting?: {
1836
+ attachTo: "ceiling" | "wall-side";
1837
+ reference: string;
1838
+ } | undefined;
1839
+ surfaces?: {
1840
+ id: string;
1841
+ label: string;
1842
+ position: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1843
+ size: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr];
1844
+ part?: string | undefined;
1845
+ rotation?: [import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr, import("../procedural-items/index.js").Expr] | undefined;
1846
+ }[] | undefined;
1847
+ }>>;
1848
+ parameters: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1849
+ slots: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1850
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1851
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1852
+ wallId: z.ZodOptional<z.ZodString>;
1853
+ side: z.ZodOptional<z.ZodEnum<{
1854
+ front: "front";
1855
+ back: "back";
1856
+ }>>;
1857
+ supportSlabId: z.ZodOptional<z.ZodString>;
1858
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1859
+ attachments: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1860
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1861
+ object: z.ZodDefault<z.ZodLiteral<"node">>;
1862
+ name: z.ZodOptional<z.ZodString>;
1863
+ parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1864
+ visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1865
+ camera: z.ZodOptional<z.ZodObject<{
1866
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1867
+ target: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
1868
+ mode: z.ZodDefault<z.ZodEnum<{
1869
+ perspective: "perspective";
1870
+ orthographic: "orthographic";
1871
+ }>>;
1872
+ fov: z.ZodOptional<z.ZodNumber>;
1873
+ zoom: z.ZodOptional<z.ZodNumber>;
1874
+ }, z.core.$strip>>;
1875
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1876
+ id: z.ZodDefault<z.ZodTemplateLiteral<`imesh_${string}`>>;
1877
+ type: z.ZodDefault<z.ZodLiteral<"imported-mesh">>;
1878
+ position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1879
+ rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1880
+ primitives: z.ZodDefault<z.ZodArray<z.ZodObject<{
1881
+ positions: z.ZodArray<z.ZodNumber>;
1882
+ normals: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1883
+ indices: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
1884
+ color: z.ZodDefault<z.ZodString>;
1885
+ opacity: z.ZodDefault<z.ZodNumber>;
1886
+ }, z.core.$strip>>>;
1887
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1342
1888
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1343
1889
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1344
1890
  visible: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -1365,8 +1911,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1365
1911
  roomNumber: z.ZodDefault<z.ZodString>;
1366
1912
  enclosureStatus: z.ZodDefault<z.ZodEnum<{
1367
1913
  auto: "auto";
1368
- enclosed: "enclosed";
1369
1914
  open: "open";
1915
+ enclosed: "enclosed";
1370
1916
  }>>;
1371
1917
  floorFinish: z.ZodDefault<z.ZodString>;
1372
1918
  wallFinish: z.ZodDefault<z.ZodString>;
@@ -1379,8 +1925,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1379
1925
  "finish-faces": "finish-faces";
1380
1926
  }>>;
1381
1927
  color: z.ZodDefault<z.ZodString>;
1382
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1383
- }, z.core.$strip>, z.ZodObject<{
1928
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1929
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1384
1930
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1385
1931
  name: z.ZodOptional<z.ZodString>;
1386
1932
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1395,7 +1941,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1395
1941
  fov: z.ZodOptional<z.ZodNumber>;
1396
1942
  zoom: z.ZodOptional<z.ZodNumber>;
1397
1943
  }, z.core.$strip>>;
1398
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
1944
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1399
1945
  id: z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>;
1400
1946
  type: z.ZodDefault<z.ZodLiteral<"slab">>;
1401
1947
  material: z.ZodOptional<z.ZodObject<{
@@ -1449,7 +1995,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1449
1995
  recessedRimElevation: z.ZodOptional<z.ZodNumber>;
1450
1996
  fillToTerrain: z.ZodOptional<z.ZodBoolean>;
1451
1997
  autoFromWalls: z.ZodDefault<z.ZodBoolean>;
1452
- }, z.core.$strip>, z.ZodObject<{
1998
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1453
1999
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1454
2000
  name: z.ZodOptional<z.ZodString>;
1455
2001
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1464,10 +2010,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1464
2010
  fov: z.ZodOptional<z.ZodNumber>;
1465
2011
  zoom: z.ZodOptional<z.ZodNumber>;
1466
2012
  }, z.core.$strip>>;
1467
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2013
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1468
2014
  id: z.ZodDefault<z.ZodTemplateLiteral<`ceiling_${string}`>>;
1469
2015
  type: z.ZodDefault<z.ZodLiteral<"ceiling">>;
1470
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
2016
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`procedural-item_${string}`>>]>>>;
1471
2017
  material: z.ZodOptional<z.ZodObject<{
1472
2018
  id: z.ZodOptional<z.ZodString>;
1473
2019
  preset: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
@@ -1515,7 +2061,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1515
2061
  }, z.core.$strip>>>;
1516
2062
  height: z.ZodOptional<z.ZodNumber>;
1517
2063
  autoFromWalls: z.ZodDefault<z.ZodBoolean>;
1518
- }, z.core.$strip>, z.ZodObject<{
2064
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1519
2065
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1520
2066
  name: z.ZodOptional<z.ZodString>;
1521
2067
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1530,7 +2076,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1530
2076
  fov: z.ZodOptional<z.ZodNumber>;
1531
2077
  zoom: z.ZodOptional<z.ZodNumber>;
1532
2078
  }, z.core.$strip>>;
1533
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2079
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1534
2080
  id: z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>;
1535
2081
  type: z.ZodDefault<z.ZodLiteral<"roof">>;
1536
2082
  material: z.ZodOptional<z.ZodObject<{
@@ -1667,8 +2213,18 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1667
2213
  wallMaterialPreset: z.ZodOptional<z.ZodString>;
1668
2214
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1669
2215
  rotation: z.ZodDefault<z.ZodNumber>;
2216
+ support: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
2217
+ kind: z.ZodLiteral<"level">;
2218
+ }, z.core.$strip>, z.ZodObject<{
2219
+ kind: z.ZodLiteral<"walls">;
2220
+ }, z.core.$strip>, z.ZodObject<{
2221
+ kind: z.ZodLiteral<"roof">;
2222
+ roofSegmentId: z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>;
2223
+ localPosition: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
2224
+ curbHeight: z.ZodDefault<z.ZodNumber>;
2225
+ }, z.core.$strip>], "kind">>;
1670
2226
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>>>;
1671
- }, z.core.$strip>, z.ZodObject<{
2227
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1672
2228
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1673
2229
  name: z.ZodOptional<z.ZodString>;
1674
2230
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1683,7 +2239,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1683
2239
  fov: z.ZodOptional<z.ZodNumber>;
1684
2240
  zoom: z.ZodOptional<z.ZodNumber>;
1685
2241
  }, z.core.$strip>>;
1686
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2242
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1687
2243
  id: z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>;
1688
2244
  type: z.ZodDefault<z.ZodLiteral<"roof-segment">>;
1689
2245
  material: z.ZodOptional<z.ZodObject<{
@@ -1828,9 +2384,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1828
2384
  gambrel: "gambrel";
1829
2385
  dutch: "dutch";
1830
2386
  mansard: "mansard";
2387
+ conical: "conical";
1831
2388
  }>>;
1832
2389
  width: z.ZodDefault<z.ZodNumber>;
1833
2390
  depth: z.ZodDefault<z.ZodNumber>;
2391
+ conicalStartAngle: z.ZodOptional<z.ZodNumber>;
2392
+ conicalSweepAngle: z.ZodOptional<z.ZodNumber>;
2393
+ conicalFullCircle: z.ZodOptional<z.ZodBoolean>;
1834
2394
  trim: z.ZodDefault<z.ZodObject<{
1835
2395
  left: z.ZodDefault<z.ZodNumber>;
1836
2396
  right: z.ZodDefault<z.ZodNumber>;
@@ -1855,6 +2415,33 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1855
2415
  deckThickness: z.ZodDefault<z.ZodNumber>;
1856
2416
  overhang: z.ZodDefault<z.ZodNumber>;
1857
2417
  shingleThickness: z.ZodDefault<z.ZodNumber>;
2418
+ arc: z.ZodOptional<z.ZodObject<{
2419
+ centerX: z.ZodNumber;
2420
+ centerZ: z.ZodNumber;
2421
+ radius: z.ZodNumber;
2422
+ }, z.core.$strip>>;
2423
+ shedSideInfillSpan: z.ZodOptional<z.ZodNumber>;
2424
+ shedSideInfillMinX: z.ZodOptional<z.ZodNumber>;
2425
+ shedSideInfillMaxX: z.ZodOptional<z.ZodNumber>;
2426
+ shedFootprintPieces: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
2427
+ shedOpenEndSides: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2428
+ right: "right";
2429
+ left: "left";
2430
+ }>>>;
2431
+ shedJointFrame: z.ZodOptional<z.ZodObject<{
2432
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2433
+ rotation: z.ZodNumber;
2434
+ }, z.core.$strip>>;
2435
+ shedJointOwnerId: z.ZodOptional<z.ZodString>;
2436
+ shedJointNeighborIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
2437
+ shedJointScopeId: z.ZodOptional<z.ZodString>;
2438
+ managedByParent: z.ZodDefault<z.ZodBoolean>;
2439
+ wallShell: z.ZodDefault<z.ZodEnum<{
2440
+ omit: "omit";
2441
+ auto: "auto";
2442
+ include: "include";
2443
+ }>>;
2444
+ shedInsetEndPanels: z.ZodDefault<z.ZodBoolean>;
1858
2445
  gambrelLowerWidthRatio: z.ZodDefault<z.ZodNumber>;
1859
2446
  gambrelLowerHeightRatio: z.ZodDefault<z.ZodNumber>;
1860
2447
  mansardSteepWidthRatio: z.ZodDefault<z.ZodNumber>;
@@ -1865,7 +2452,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1865
2452
  dutchGabletRake: z.ZodDefault<z.ZodNumber>;
1866
2453
  dutchTopRakeThickness: z.ZodDefault<z.ZodNumber>;
1867
2454
  children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1868
- }, z.core.$strip>, z.ZodObject<{
2455
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1869
2456
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1870
2457
  name: z.ZodOptional<z.ZodString>;
1871
2458
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1880,10 +2467,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1880
2467
  fov: z.ZodOptional<z.ZodNumber>;
1881
2468
  zoom: z.ZodOptional<z.ZodNumber>;
1882
2469
  }, z.core.$strip>>;
1883
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2470
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1884
2471
  id: z.ZodDefault<z.ZodTemplateLiteral<`shelf_${string}`>>;
1885
2472
  type: z.ZodDefault<z.ZodLiteral<"shelf">>;
1886
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
2473
+ children: z.ZodDefault<z.ZodArray<z.ZodString>>;
1887
2474
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1888
2475
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
1889
2476
  supportSlabId: z.ZodOptional<z.ZodString>;
@@ -1903,9 +2490,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1903
2490
  withSides: z.ZodDefault<z.ZodBoolean>;
1904
2491
  withBottom: z.ZodDefault<z.ZodBoolean>;
1905
2492
  bracketStyle: z.ZodDefault<z.ZodEnum<{
2493
+ hidden: "hidden";
1906
2494
  minimal: "minimal";
1907
2495
  industrial: "industrial";
1908
- hidden: "hidden";
1909
2496
  }>>;
1910
2497
  material: z.ZodOptional<z.ZodObject<{
1911
2498
  id: z.ZodOptional<z.ZodString>;
@@ -1941,7 +2528,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1941
2528
  }, z.core.$strip>>;
1942
2529
  materialPreset: z.ZodOptional<z.ZodString>;
1943
2530
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1944
- }, z.core.$strip>, z.ZodObject<{
2531
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
1945
2532
  object: z.ZodDefault<z.ZodLiteral<"node">>;
1946
2533
  name: z.ZodOptional<z.ZodString>;
1947
2534
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1956,7 +2543,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
1956
2543
  fov: z.ZodOptional<z.ZodNumber>;
1957
2544
  zoom: z.ZodOptional<z.ZodNumber>;
1958
2545
  }, z.core.$strip>>;
1959
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2546
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1960
2547
  id: z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>;
1961
2548
  type: z.ZodDefault<z.ZodLiteral<"stair">>;
1962
2549
  material: z.ZodOptional<z.ZodObject<{
@@ -2130,7 +2717,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2130
2717
  }>>;
2131
2718
  railingHeight: z.ZodDefault<z.ZodNumber>;
2132
2719
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>>>;
2133
- }, z.core.$strip>, z.ZodObject<{
2720
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2134
2721
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2135
2722
  name: z.ZodOptional<z.ZodString>;
2136
2723
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2145,7 +2732,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2145
2732
  fov: z.ZodOptional<z.ZodNumber>;
2146
2733
  zoom: z.ZodOptional<z.ZodNumber>;
2147
2734
  }, z.core.$strip>>;
2148
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2735
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2149
2736
  id: z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>;
2150
2737
  type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
2151
2738
  material: z.ZodOptional<z.ZodObject<{
@@ -2198,7 +2785,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2198
2785
  }>>;
2199
2786
  fillToFloor: z.ZodDefault<z.ZodBoolean>;
2200
2787
  thickness: z.ZodDefault<z.ZodNumber>;
2201
- }, z.core.$strip>, z.ZodObject<{
2788
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2202
2789
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2203
2790
  name: z.ZodOptional<z.ZodString>;
2204
2791
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2213,15 +2800,22 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2213
2800
  fov: z.ZodOptional<z.ZodNumber>;
2214
2801
  zoom: z.ZodOptional<z.ZodNumber>;
2215
2802
  }, z.core.$strip>>;
2216
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2803
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2217
2804
  id: z.ZodDefault<z.ZodTemplateLiteral<`scan_${string}`>>;
2218
2805
  type: z.ZodDefault<z.ZodLiteral<"scan">>;
2219
- url: z.ZodString;
2806
+ url: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2807
+ captureSession: z.ZodDefault<z.ZodNullable<z.ZodObject<{
2808
+ sessionId: z.ZodString;
2809
+ schemaVersion: z.ZodOptional<z.ZodNumber>;
2810
+ revisionId: z.ZodOptional<z.ZodString>;
2811
+ manifestUrl: z.ZodOptional<z.ZodString>;
2812
+ }, z.core.$strip>>>;
2813
+ layers: z.ZodPipe<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>, z.ZodTransform<Record<string, boolean>, Record<string, boolean>>>;
2220
2814
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2221
2815
  rotation: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2222
2816
  scale: z.ZodDefault<z.ZodNumber>;
2223
2817
  opacity: z.ZodDefault<z.ZodNumber>;
2224
- }, z.core.$strip>, z.ZodObject<{
2818
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2225
2819
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2226
2820
  name: z.ZodOptional<z.ZodString>;
2227
2821
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2236,7 +2830,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2236
2830
  fov: z.ZodOptional<z.ZodNumber>;
2237
2831
  zoom: z.ZodOptional<z.ZodNumber>;
2238
2832
  }, z.core.$strip>>;
2239
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2833
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2240
2834
  id: z.ZodDefault<z.ZodTemplateLiteral<`guide_${string}`>>;
2241
2835
  type: z.ZodDefault<z.ZodLiteral<"guide">>;
2242
2836
  url: z.ZodString;
@@ -2252,7 +2846,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2252
2846
  metersPerUnit: z.ZodNumber;
2253
2847
  label: z.ZodString;
2254
2848
  }, z.core.$strip>>>;
2255
- }, z.core.$strip>, z.ZodObject<{
2849
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2256
2850
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2257
2851
  name: z.ZodOptional<z.ZodString>;
2258
2852
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2267,7 +2861,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2267
2861
  fov: z.ZodOptional<z.ZodNumber>;
2268
2862
  zoom: z.ZodOptional<z.ZodNumber>;
2269
2863
  }, z.core.$strip>>;
2270
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2864
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2271
2865
  id: z.ZodDefault<z.ZodTemplateLiteral<`measurement_${string}`>>;
2272
2866
  type: z.ZodDefault<z.ZodLiteral<"measurement">>;
2273
2867
  measurement: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -2351,7 +2945,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2351
2945
  }, z.core.$strip>]>>;
2352
2946
  extrusion: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
2353
2947
  }, z.core.$strip>], "kind">;
2354
- }, z.core.$strip>, z.ZodObject<{
2948
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2355
2949
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2356
2950
  name: z.ZodOptional<z.ZodString>;
2357
2951
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2366,13 +2960,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2366
2960
  fov: z.ZodOptional<z.ZodNumber>;
2367
2961
  zoom: z.ZodOptional<z.ZodNumber>;
2368
2962
  }, z.core.$strip>>;
2369
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2963
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2370
2964
  id: z.ZodDefault<z.ZodTemplateLiteral<`spawn_${string}`>>;
2371
2965
  type: z.ZodDefault<z.ZodLiteral<"spawn">>;
2372
2966
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
2373
2967
  rotation: z.ZodDefault<z.ZodNumber>;
2374
2968
  supportSlabId: z.ZodOptional<z.ZodString>;
2375
- }, z.core.$strip>, z.ZodObject<{
2969
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2376
2970
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2377
2971
  name: z.ZodOptional<z.ZodString>;
2378
2972
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2387,7 +2981,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2387
2981
  fov: z.ZodOptional<z.ZodNumber>;
2388
2982
  zoom: z.ZodOptional<z.ZodNumber>;
2389
2983
  }, z.core.$strip>>;
2390
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
2984
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2391
2985
  id: z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>;
2392
2986
  type: z.ZodDefault<z.ZodLiteral<"window">>;
2393
2987
  material: z.ZodOptional<z.ZodObject<{
@@ -2430,6 +3024,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2430
3024
  back: "back";
2431
3025
  }>>;
2432
3026
  wallId: z.ZodOptional<z.ZodString>;
3027
+ dormerId: z.ZodOptional<z.ZodString>;
3028
+ dormerFace: z.ZodOptional<z.ZodEnum<{
3029
+ front: "front";
3030
+ back: "back";
3031
+ right: "right";
3032
+ left: "left";
3033
+ }>>;
2433
3034
  roofSegmentId: z.ZodOptional<z.ZodString>;
2434
3035
  roofFace: z.ZodOptional<z.ZodEnum<{
2435
3036
  front: "front";
@@ -2461,8 +3062,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2461
3062
  opening: "opening";
2462
3063
  }>>;
2463
3064
  windowType: z.ZodDefault<z.ZodEnum<{
2464
- sliding: "sliding";
2465
3065
  fixed: "fixed";
3066
+ sliding: "sliding";
2466
3067
  casement: "casement";
2467
3068
  awning: "awning";
2468
3069
  hopper: "hopper";
@@ -2507,7 +3108,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2507
3108
  sill: z.ZodDefault<z.ZodBoolean>;
2508
3109
  sillDepth: z.ZodDefault<z.ZodNumber>;
2509
3110
  sillThickness: z.ZodDefault<z.ZodNumber>;
2510
- }, z.core.$strip>, z.ZodObject<{
3111
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2511
3112
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2512
3113
  name: z.ZodOptional<z.ZodString>;
2513
3114
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2522,7 +3123,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2522
3123
  fov: z.ZodOptional<z.ZodNumber>;
2523
3124
  zoom: z.ZodOptional<z.ZodNumber>;
2524
3125
  }, z.core.$strip>>;
2525
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3126
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2526
3127
  id: z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>;
2527
3128
  type: z.ZodDefault<z.ZodLiteral<"door">>;
2528
3129
  material: z.ZodOptional<z.ZodObject<{
@@ -2672,7 +3273,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2672
3273
  doorCloser: z.ZodDefault<z.ZodBoolean>;
2673
3274
  panicBar: z.ZodDefault<z.ZodBoolean>;
2674
3275
  panicBarHeight: z.ZodDefault<z.ZodNumber>;
2675
- }, z.core.$strip>, z.ZodObject<{
3276
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2676
3277
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2677
3278
  name: z.ZodOptional<z.ZodString>;
2678
3279
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2687,7 +3288,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2687
3288
  fov: z.ZodOptional<z.ZodNumber>;
2688
3289
  zoom: z.ZodOptional<z.ZodNumber>;
2689
3290
  }, z.core.$strip>>;
2690
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3291
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2691
3292
  id: z.ZodDefault<z.ZodTemplateLiteral<`bvent_${string}`>>;
2692
3293
  type: z.ZodDefault<z.ZodLiteral<"box-vent">>;
2693
3294
  material: z.ZodOptional<z.ZodObject<{
@@ -2722,6 +3323,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2722
3323
  scale: z.ZodOptional<z.ZodNumber>;
2723
3324
  }, z.core.$strip>>;
2724
3325
  }, z.core.$strip>>;
3326
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2725
3327
  materialPreset: z.ZodDefault<z.ZodString>;
2726
3328
  roofSegmentId: z.ZodOptional<z.ZodString>;
2727
3329
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -2741,8 +3343,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2741
3343
  box: "box";
2742
3344
  cap: "cap";
2743
3345
  dome: "dome";
2744
- }>>>;
2745
- }, z.core.$strip>, z.ZodObject<{
3346
+ }>>, unknown>;
3347
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2746
3348
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2747
3349
  name: z.ZodOptional<z.ZodString>;
2748
3350
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2757,7 +3359,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2757
3359
  fov: z.ZodOptional<z.ZodNumber>;
2758
3360
  zoom: z.ZodOptional<z.ZodNumber>;
2759
3361
  }, z.core.$strip>>;
2760
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3362
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2761
3363
  id: z.ZodDefault<z.ZodTemplateLiteral<`rvent_${string}`>>;
2762
3364
  type: z.ZodDefault<z.ZodLiteral<"ridge-vent">>;
2763
3365
  material: z.ZodOptional<z.ZodObject<{
@@ -2805,7 +3407,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2805
3407
  shingled: "shingled";
2806
3408
  }>>;
2807
3409
  endCaps: z.ZodDefault<z.ZodBoolean>;
2808
- }, z.core.$strip>, z.ZodObject<{
3410
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2809
3411
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2810
3412
  name: z.ZodOptional<z.ZodString>;
2811
3413
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2820,7 +3422,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2820
3422
  fov: z.ZodOptional<z.ZodNumber>;
2821
3423
  zoom: z.ZodOptional<z.ZodNumber>;
2822
3424
  }, z.core.$strip>>;
2823
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3425
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2824
3426
  id: z.ZodDefault<z.ZodTemplateLiteral<`tvent_${string}`>>;
2825
3427
  type: z.ZodDefault<z.ZodLiteral<"turbine-vent">>;
2826
3428
  material: z.ZodOptional<z.ZodObject<{
@@ -2855,6 +3457,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2855
3457
  scale: z.ZodOptional<z.ZodNumber>;
2856
3458
  }, z.core.$strip>>;
2857
3459
  }, z.core.$strip>>;
3460
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2858
3461
  materialPreset: z.ZodDefault<z.ZodString>;
2859
3462
  roofSegmentId: z.ZodOptional<z.ZodString>;
2860
3463
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -2866,10 +3469,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2866
3469
  vaneCount: z.ZodDefault<z.ZodNumber>;
2867
3470
  spinSpeed: z.ZodDefault<z.ZodNumber>;
2868
3471
  style: z.ZodDefault<z.ZodEnum<{
2869
- globe: "globe";
2870
3472
  cylinder: "cylinder";
3473
+ globe: "globe";
2871
3474
  }>>;
2872
- }, z.core.$strip>, z.ZodObject<{
3475
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2873
3476
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2874
3477
  name: z.ZodOptional<z.ZodString>;
2875
3478
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2884,7 +3487,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2884
3487
  fov: z.ZodOptional<z.ZodNumber>;
2885
3488
  zoom: z.ZodOptional<z.ZodNumber>;
2886
3489
  }, z.core.$strip>>;
2887
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3490
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2888
3491
  id: z.ZodDefault<z.ZodTemplateLiteral<`cupola_${string}`>>;
2889
3492
  type: z.ZodDefault<z.ZodLiteral<"cupola">>;
2890
3493
  material: z.ZodOptional<z.ZodObject<{
@@ -2919,6 +3522,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2919
3522
  scale: z.ZodOptional<z.ZodNumber>;
2920
3523
  }, z.core.$strip>>;
2921
3524
  }, z.core.$strip>>;
3525
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2922
3526
  materialPreset: z.ZodDefault<z.ZodString>;
2923
3527
  roofSegmentId: z.ZodOptional<z.ZodString>;
2924
3528
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -2931,7 +3535,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2931
3535
  pyramid: "pyramid";
2932
3536
  }>>;
2933
3537
  finial: z.ZodDefault<z.ZodBoolean>;
2934
- }, z.core.$strip>, z.ZodObject<{
3538
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2935
3539
  object: z.ZodDefault<z.ZodLiteral<"node">>;
2936
3540
  name: z.ZodOptional<z.ZodString>;
2937
3541
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -2946,7 +3550,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2946
3550
  fov: z.ZodOptional<z.ZodNumber>;
2947
3551
  zoom: z.ZodOptional<z.ZodNumber>;
2948
3552
  }, z.core.$strip>>;
2949
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3553
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2950
3554
  id: z.ZodDefault<z.ZodTemplateLiteral<`eyebrow-vent_${string}`>>;
2951
3555
  type: z.ZodDefault<z.ZodLiteral<"eyebrow-vent">>;
2952
3556
  material: z.ZodOptional<z.ZodObject<{
@@ -2981,6 +3585,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2981
3585
  scale: z.ZodOptional<z.ZodNumber>;
2982
3586
  }, z.core.$strip>>;
2983
3587
  }, z.core.$strip>>;
3588
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2984
3589
  materialPreset: z.ZodDefault<z.ZodString>;
2985
3590
  roofSegmentId: z.ZodOptional<z.ZodString>;
2986
3591
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -2989,13 +3594,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
2989
3594
  depth: z.ZodDefault<z.ZodNumber>;
2990
3595
  height: z.ZodDefault<z.ZodNumber>;
2991
3596
  style: z.ZodDefault<z.ZodEnum<{
2992
- scoop: "scoop";
2993
3597
  "half-round": "half-round";
3598
+ scoop: "scoop";
2994
3599
  "slant-box": "slant-box";
2995
3600
  }>>;
2996
3601
  louverCount: z.ZodDefault<z.ZodNumber>;
2997
3602
  backRatio: z.ZodDefault<z.ZodNumber>;
2998
- }, z.core.$strip>, z.ZodObject<{
3603
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
2999
3604
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3000
3605
  name: z.ZodOptional<z.ZodString>;
3001
3606
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3010,7 +3615,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3010
3615
  fov: z.ZodOptional<z.ZodNumber>;
3011
3616
  zoom: z.ZodOptional<z.ZodNumber>;
3012
3617
  }, z.core.$strip>>;
3013
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3618
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3014
3619
  id: z.ZodDefault<z.ZodTemplateLiteral<`gutter_${string}`>>;
3015
3620
  type: z.ZodDefault<z.ZodLiteral<"gutter">>;
3016
3621
  material: z.ZodOptional<z.ZodObject<{
@@ -3045,17 +3650,23 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3045
3650
  scale: z.ZodOptional<z.ZodNumber>;
3046
3651
  }, z.core.$strip>>;
3047
3652
  }, z.core.$strip>>;
3653
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3048
3654
  materialPreset: z.ZodDefault<z.ZodString>;
3049
3655
  roofSegmentId: z.ZodOptional<z.ZodString>;
3050
3656
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3051
3657
  rotation: z.ZodDefault<z.ZodNumber>;
3052
3658
  length: z.ZodDefault<z.ZodNumber>;
3659
+ arc: z.ZodOptional<z.ZodObject<{
3660
+ centerX: z.ZodNumber;
3661
+ centerZ: z.ZodNumber;
3662
+ radius: z.ZodNumber;
3663
+ }, z.core.$strip>>;
3053
3664
  size: z.ZodDefault<z.ZodNumber>;
3054
3665
  thickness: z.ZodDefault<z.ZodNumber>;
3055
3666
  profile: z.ZodDefault<z.ZodEnum<{
3056
3667
  box: "box";
3057
- "half-round": "half-round";
3058
3668
  "k-style": "k-style";
3669
+ "half-round": "half-round";
3059
3670
  }>>;
3060
3671
  endCapLeft: z.ZodDefault<z.ZodBoolean>;
3061
3672
  endCapRight: z.ZodDefault<z.ZodBoolean>;
@@ -3068,8 +3679,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3068
3679
  id: z.ZodString;
3069
3680
  offset: z.ZodDefault<z.ZodNumber>;
3070
3681
  diameter: z.ZodDefault<z.ZodNumber>;
3682
+ generatedBy: z.ZodOptional<z.ZodLiteral<"default-downspout">>;
3071
3683
  }, z.core.$strip>>>;
3072
- }, z.core.$strip>, z.ZodObject<{
3684
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3073
3685
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3074
3686
  name: z.ZodOptional<z.ZodString>;
3075
3687
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3084,7 +3696,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3084
3696
  fov: z.ZodOptional<z.ZodNumber>;
3085
3697
  zoom: z.ZodOptional<z.ZodNumber>;
3086
3698
  }, z.core.$strip>>;
3087
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3699
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3088
3700
  id: z.ZodDefault<z.ZodTemplateLiteral<`chimney_${string}`>>;
3089
3701
  type: z.ZodDefault<z.ZodLiteral<"chimney">>;
3090
3702
  material: z.ZodOptional<z.ZodObject<{
@@ -3218,7 +3830,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3218
3830
  panelHeight: z.ZodDefault<z.ZodNumber>;
3219
3831
  panelOffsetTop: z.ZodDefault<z.ZodNumber>;
3220
3832
  panelMargin: z.ZodDefault<z.ZodNumber>;
3221
- }, z.core.$strip>, z.ZodObject<{
3833
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3222
3834
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3223
3835
  name: z.ZodOptional<z.ZodString>;
3224
3836
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3233,7 +3845,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3233
3845
  fov: z.ZodOptional<z.ZodNumber>;
3234
3846
  zoom: z.ZodOptional<z.ZodNumber>;
3235
3847
  }, z.core.$strip>>;
3236
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3848
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3237
3849
  id: z.ZodDefault<z.ZodTemplateLiteral<`solarpanel_${string}`>>;
3238
3850
  type: z.ZodDefault<z.ZodLiteral<"solar-panel">>;
3239
3851
  material: z.ZodOptional<z.ZodObject<{
@@ -3326,7 +3938,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3326
3938
  frameThickness: z.ZodDefault<z.ZodNumber>;
3327
3939
  frameDepth: z.ZodDefault<z.ZodNumber>;
3328
3940
  surfaceNormal: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3329
- }, z.core.$strip>, z.ZodObject<{
3941
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3330
3942
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3331
3943
  name: z.ZodOptional<z.ZodString>;
3332
3944
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3341,7 +3953,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3341
3953
  fov: z.ZodOptional<z.ZodNumber>;
3342
3954
  zoom: z.ZodOptional<z.ZodNumber>;
3343
3955
  }, z.core.$strip>>;
3344
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
3956
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3345
3957
  id: z.ZodDefault<z.ZodTemplateLiteral<`skylight_${string}`>>;
3346
3958
  type: z.ZodDefault<z.ZodLiteral<"skylight">>;
3347
3959
  material: z.ZodOptional<z.ZodObject<{
@@ -3429,17 +4041,17 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3429
4041
  lanternTopScale: z.ZodDefault<z.ZodNumber>;
3430
4042
  openingAngle: z.ZodDefault<z.ZodNumber>;
3431
4043
  openingSide: z.ZodDefault<z.ZodEnum<{
4044
+ top: "top";
3432
4045
  right: "right";
3433
4046
  left: "left";
3434
- top: "top";
3435
4047
  bottom: "bottom";
3436
4048
  }>>;
3437
4049
  operationState: z.ZodDefault<z.ZodNumber>;
3438
4050
  motorHousing: z.ZodDefault<z.ZodBoolean>;
3439
4051
  slideFraction: z.ZodDefault<z.ZodNumber>;
3440
4052
  slideDirection: z.ZodDefault<z.ZodEnum<{
3441
- z: "z";
3442
4053
  x: "x";
4054
+ z: "z";
3443
4055
  }>>;
3444
4056
  trackWidth: z.ZodDefault<z.ZodNumber>;
3445
4057
  motorHousingSize: z.ZodDefault<z.ZodNumber>;
@@ -3447,7 +4059,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3447
4059
  curbHeight: z.ZodDefault<z.ZodNumber>;
3448
4060
  cutoutOffset: z.ZodDefault<z.ZodNumber>;
3449
4061
  surfaceNormal: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3450
- }, z.core.$strip>, z.ZodObject<{
4062
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3451
4063
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3452
4064
  name: z.ZodOptional<z.ZodString>;
3453
4065
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3462,7 +4074,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3462
4074
  fov: z.ZodOptional<z.ZodNumber>;
3463
4075
  zoom: z.ZodOptional<z.ZodNumber>;
3464
4076
  }, z.core.$strip>>;
3465
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4077
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3466
4078
  id: z.ZodDefault<z.ZodTemplateLiteral<`dormer_${string}`>>;
3467
4079
  type: z.ZodDefault<z.ZodLiteral<"dormer">>;
3468
4080
  material: z.ZodOptional<z.ZodObject<{
@@ -3611,8 +4223,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3611
4223
  gambrel: "gambrel";
3612
4224
  dutch: "dutch";
3613
4225
  mansard: "mansard";
4226
+ conical: "conical";
3614
4227
  }>>;
3615
4228
  roofHeight: z.ZodDefault<z.ZodNumber>;
4229
+ shedHighSide: z.ZodDefault<z.ZodEnum<{
4230
+ front: "front";
4231
+ back: "back";
4232
+ }>>;
3616
4233
  wallSkirtHeight: z.ZodDefault<z.ZodNumber>;
3617
4234
  windowWidth: z.ZodDefault<z.ZodNumber>;
3618
4235
  windowHeight: z.ZodDefault<z.ZodNumber>;
@@ -3633,7 +4250,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3633
4250
  windowSill: z.ZodDefault<z.ZodBoolean>;
3634
4251
  windowSillDepth: z.ZodDefault<z.ZodNumber>;
3635
4252
  windowSillThickness: z.ZodDefault<z.ZodNumber>;
3636
- }, z.core.$strip>, z.ZodObject<{
4253
+ children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>>>;
4254
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3637
4255
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3638
4256
  name: z.ZodOptional<z.ZodString>;
3639
4257
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3648,7 +4266,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3648
4266
  fov: z.ZodOptional<z.ZodNumber>;
3649
4267
  zoom: z.ZodOptional<z.ZodNumber>;
3650
4268
  }, z.core.$strip>>;
3651
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4269
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3652
4270
  id: z.ZodDefault<z.ZodTemplateLiteral<`downspout_${string}`>>;
3653
4271
  type: z.ZodDefault<z.ZodLiteral<"downspout">>;
3654
4272
  material: z.ZodOptional<z.ZodObject<{
@@ -3683,10 +4301,15 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3683
4301
  scale: z.ZodOptional<z.ZodNumber>;
3684
4302
  }, z.core.$strip>>;
3685
4303
  }, z.core.$strip>>;
4304
+ slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3686
4305
  materialPreset: z.ZodDefault<z.ZodString>;
3687
4306
  gutterId: z.ZodOptional<z.ZodString>;
3688
4307
  outletId: z.ZodOptional<z.ZodString>;
3689
4308
  length: z.ZodDefault<z.ZodNumber>;
4309
+ lengthMode: z.ZodOptional<z.ZodEnum<{
4310
+ manual: "manual";
4311
+ "to-ground": "to-ground";
4312
+ }>>;
3690
4313
  diameter: z.ZodDefault<z.ZodNumber>;
3691
4314
  standoff: z.ZodDefault<z.ZodNumber>;
3692
4315
  shape: z.ZodDefault<z.ZodEnum<{
@@ -3704,7 +4327,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3704
4327
  splash: "splash";
3705
4328
  kickout: "kickout";
3706
4329
  }>>;
3707
- }, z.core.$strip>, z.ZodObject<{
4330
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3708
4331
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3709
4332
  name: z.ZodOptional<z.ZodString>;
3710
4333
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3719,10 +4342,32 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3719
4342
  fov: z.ZodOptional<z.ZodNumber>;
3720
4343
  zoom: z.ZodOptional<z.ZodNumber>;
3721
4344
  }, z.core.$strip>>;
3722
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4345
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3723
4346
  id: z.ZodDefault<z.ZodTemplateLiteral<`duct-segment_${string}`>>;
3724
4347
  type: z.ZodDefault<z.ZodLiteral<"duct-segment">>;
3725
4348
  path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
4349
+ autoHangers: z.ZodOptional<z.ZodBoolean>;
4350
+ hangerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
4351
+ fraction: z.ZodOptional<z.ZodNumber>;
4352
+ skipped: z.ZodOptional<z.ZodBoolean>;
4353
+ hostId: z.ZodOptional<z.ZodString>;
4354
+ }, z.core.$strip>>>;
4355
+ hangerStyle: z.ZodOptional<z.ZodEnum<{
4356
+ double: "double";
4357
+ single: "single";
4358
+ }>>;
4359
+ hangerSpacing: z.ZodOptional<z.ZodNumber>;
4360
+ hangerMaxReach: z.ZodOptional<z.ZodNumber>;
4361
+ wallAttachment: z.ZodOptional<z.ZodObject<{
4362
+ wallId: z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>;
4363
+ side: z.ZodEnum<{
4364
+ front: "front";
4365
+ back: "back";
4366
+ }>;
4367
+ startUV: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4368
+ endUV: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4369
+ offset: z.ZodNumber;
4370
+ }, z.core.$strip>>;
3726
4371
  shape: z.ZodDefault<z.ZodEnum<{
3727
4372
  round: "round";
3728
4373
  rect: "rect";
@@ -3746,7 +4391,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3746
4391
  return: "return";
3747
4392
  }>>;
3748
4393
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3749
- }, z.core.$strip>, z.ZodObject<{
4394
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3750
4395
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3751
4396
  name: z.ZodOptional<z.ZodString>;
3752
4397
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3761,7 +4406,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3761
4406
  fov: z.ZodOptional<z.ZodNumber>;
3762
4407
  zoom: z.ZodOptional<z.ZodNumber>;
3763
4408
  }, z.core.$strip>>;
3764
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4409
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3765
4410
  id: z.ZodDefault<z.ZodTemplateLiteral<`duct-fitting_${string}`>>;
3766
4411
  type: z.ZodDefault<z.ZodLiteral<"duct-fitting">>;
3767
4412
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -3772,12 +4417,26 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3772
4417
  cross: "cross";
3773
4418
  reducer: "reducer";
3774
4419
  transition: "transition";
4420
+ "end-cap": "end-cap";
4421
+ damper: "damper";
4422
+ "access-panel": "access-panel";
4423
+ coupling: "coupling";
3775
4424
  }>>;
3776
4425
  shape: z.ZodDefault<z.ZodEnum<{
3777
4426
  round: "round";
3778
4427
  rect: "rect";
3779
4428
  oval: "oval";
3780
4429
  }>>;
4430
+ inletShape: z.ZodOptional<z.ZodEnum<{
4431
+ round: "round";
4432
+ rect: "rect";
4433
+ oval: "oval";
4434
+ }>>;
4435
+ outletShape: z.ZodOptional<z.ZodEnum<{
4436
+ round: "round";
4437
+ rect: "rect";
4438
+ oval: "oval";
4439
+ }>>;
3781
4440
  width: z.ZodDefault<z.ZodNumber>;
3782
4441
  height: z.ZodDefault<z.ZodNumber>;
3783
4442
  shape2: z.ZodDefault<z.ZodEnum<{
@@ -3800,8 +4459,11 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3800
4459
  supply: "supply";
3801
4460
  return: "return";
3802
4461
  }>>;
4462
+ damperAngle: z.ZodDefault<z.ZodNumber>;
4463
+ panelWidth: z.ZodDefault<z.ZodNumber>;
4464
+ panelHeight: z.ZodDefault<z.ZodNumber>;
3803
4465
  slots: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3804
- }, z.core.$strip>, z.ZodObject<{
4466
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3805
4467
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3806
4468
  name: z.ZodOptional<z.ZodString>;
3807
4469
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3816,7 +4478,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3816
4478
  fov: z.ZodOptional<z.ZodNumber>;
3817
4479
  zoom: z.ZodOptional<z.ZodNumber>;
3818
4480
  }, z.core.$strip>>;
3819
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4481
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3820
4482
  id: z.ZodDefault<z.ZodTemplateLiteral<`duct-terminal_${string}`>>;
3821
4483
  type: z.ZodDefault<z.ZodLiteral<"duct-terminal">>;
3822
4484
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -3842,7 +4504,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3842
4504
  collarDiameter: z.ZodDefault<z.ZodNumber>;
3843
4505
  collarWidth: z.ZodDefault<z.ZodNumber>;
3844
4506
  collarHeight: z.ZodDefault<z.ZodNumber>;
3845
- }, z.core.$strip>, z.ZodObject<{
4507
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3846
4508
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3847
4509
  name: z.ZodOptional<z.ZodString>;
3848
4510
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3857,7 +4519,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3857
4519
  fov: z.ZodOptional<z.ZodNumber>;
3858
4520
  zoom: z.ZodOptional<z.ZodNumber>;
3859
4521
  }, z.core.$strip>>;
3860
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4522
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3861
4523
  id: z.ZodDefault<z.ZodTemplateLiteral<`hvac-equipment_${string}`>>;
3862
4524
  type: z.ZodDefault<z.ZodLiteral<"hvac-equipment">>;
3863
4525
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -3887,7 +4549,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3887
4549
  supplyHeight: z.ZodDefault<z.ZodNumber>;
3888
4550
  returnWidth: z.ZodDefault<z.ZodNumber>;
3889
4551
  returnHeight: z.ZodDefault<z.ZodNumber>;
3890
- }, z.core.$strip>, z.ZodObject<{
4552
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3891
4553
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3892
4554
  name: z.ZodOptional<z.ZodString>;
3893
4555
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3902,14 +4564,14 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3902
4564
  fov: z.ZodOptional<z.ZodNumber>;
3903
4565
  zoom: z.ZodOptional<z.ZodNumber>;
3904
4566
  }, z.core.$strip>>;
3905
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4567
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3906
4568
  id: z.ZodDefault<z.ZodTemplateLiteral<`lineset_${string}`>>;
3907
4569
  type: z.ZodDefault<z.ZodLiteral<"lineset">>;
3908
4570
  path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3909
4571
  suctionDiameter: z.ZodDefault<z.ZodNumber>;
3910
4572
  liquidDiameter: z.ZodDefault<z.ZodNumber>;
3911
4573
  insulated: z.ZodDefault<z.ZodBoolean>;
3912
- }, z.core.$strip>, z.ZodObject<{
4574
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3913
4575
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3914
4576
  name: z.ZodOptional<z.ZodString>;
3915
4577
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3924,12 +4586,12 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3924
4586
  fov: z.ZodOptional<z.ZodNumber>;
3925
4587
  zoom: z.ZodOptional<z.ZodNumber>;
3926
4588
  }, z.core.$strip>>;
3927
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4589
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3928
4590
  id: z.ZodDefault<z.ZodTemplateLiteral<`liquid-line_${string}`>>;
3929
4591
  type: z.ZodDefault<z.ZodLiteral<"liquid-line">>;
3930
4592
  path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
3931
4593
  diameter: z.ZodDefault<z.ZodNumber>;
3932
- }, z.core.$strip>, z.ZodObject<{
4594
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3933
4595
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3934
4596
  name: z.ZodOptional<z.ZodString>;
3935
4597
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3944,21 +4606,43 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3944
4606
  fov: z.ZodOptional<z.ZodNumber>;
3945
4607
  zoom: z.ZodOptional<z.ZodNumber>;
3946
4608
  }, z.core.$strip>>;
3947
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4609
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3948
4610
  id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-segment_${string}`>>;
3949
4611
  type: z.ZodDefault<z.ZodLiteral<"pipe-segment">>;
3950
4612
  path: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
4613
+ autoHangers: z.ZodOptional<z.ZodBoolean>;
4614
+ hangerOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
4615
+ fraction: z.ZodOptional<z.ZodNumber>;
4616
+ skipped: z.ZodOptional<z.ZodBoolean>;
4617
+ hostId: z.ZodOptional<z.ZodString>;
4618
+ }, z.core.$strip>>>;
4619
+ hangerStyle: z.ZodOptional<z.ZodEnum<{
4620
+ double: "double";
4621
+ single: "single";
4622
+ }>>;
4623
+ hangerSpacing: z.ZodOptional<z.ZodNumber>;
4624
+ hangerMaxReach: z.ZodOptional<z.ZodNumber>;
4625
+ wallAttachment: z.ZodOptional<z.ZodObject<{
4626
+ wallId: z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>;
4627
+ side: z.ZodEnum<{
4628
+ front: "front";
4629
+ back: "back";
4630
+ }>;
4631
+ startUV: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4632
+ endUV: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
4633
+ offset: z.ZodNumber;
4634
+ }, z.core.$strip>>;
3951
4635
  diameter: z.ZodDefault<z.ZodNumber>;
3952
4636
  pipeMaterial: z.ZodDefault<z.ZodEnum<{
3953
- pvc: "pvc";
3954
4637
  abs: "abs";
4638
+ pvc: "pvc";
3955
4639
  "cast-iron": "cast-iron";
3956
4640
  }>>;
3957
4641
  system: z.ZodDefault<z.ZodEnum<{
3958
4642
  waste: "waste";
3959
4643
  vent: "vent";
3960
4644
  }>>;
3961
- }, z.core.$strip>, z.ZodObject<{
4645
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
3962
4646
  object: z.ZodDefault<z.ZodLiteral<"node">>;
3963
4647
  name: z.ZodOptional<z.ZodString>;
3964
4648
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -3973,7 +4657,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3973
4657
  fov: z.ZodOptional<z.ZodNumber>;
3974
4658
  zoom: z.ZodOptional<z.ZodNumber>;
3975
4659
  }, z.core.$strip>>;
3976
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4660
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3977
4661
  id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-fitting_${string}`>>;
3978
4662
  type: z.ZodDefault<z.ZodLiteral<"pipe-fitting">>;
3979
4663
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -3981,22 +4665,30 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
3981
4665
  fittingType: z.ZodDefault<z.ZodEnum<{
3982
4666
  elbow: "elbow";
3983
4667
  cross: "cross";
4668
+ reducer: "reducer";
4669
+ "end-cap": "end-cap";
4670
+ coupling: "coupling";
3984
4671
  wye: "wye";
3985
4672
  "sanitary-tee": "sanitary-tee";
4673
+ cleanout: "cleanout";
3986
4674
  }>>;
3987
4675
  angle: z.ZodDefault<z.ZodNumber>;
3988
4676
  diameter: z.ZodDefault<z.ZodNumber>;
3989
4677
  diameter2: z.ZodDefault<z.ZodNumber>;
4678
+ cleanoutStyle: z.ZodDefault<z.ZodEnum<{
4679
+ end: "end";
4680
+ inline: "inline";
4681
+ }>>;
3990
4682
  pipeMaterial: z.ZodDefault<z.ZodEnum<{
3991
- pvc: "pvc";
3992
4683
  abs: "abs";
4684
+ pvc: "pvc";
3993
4685
  "cast-iron": "cast-iron";
3994
4686
  }>>;
3995
4687
  system: z.ZodDefault<z.ZodEnum<{
3996
4688
  waste: "waste";
3997
4689
  vent: "vent";
3998
4690
  }>>;
3999
- }, z.core.$strip>, z.ZodObject<{
4691
+ }, z.core.$strip>>, BareDiscriminator<z.ZodObject<{
4000
4692
  object: z.ZodDefault<z.ZodLiteral<"node">>;
4001
4693
  name: z.ZodOptional<z.ZodString>;
4002
4694
  parentId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -4011,20 +4703,25 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
4011
4703
  fov: z.ZodOptional<z.ZodNumber>;
4012
4704
  zoom: z.ZodOptional<z.ZodNumber>;
4013
4705
  }, z.core.$strip>>;
4014
- metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
4706
+ metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
4015
4707
  id: z.ZodDefault<z.ZodTemplateLiteral<`pipe-trap_${string}`>>;
4016
4708
  type: z.ZodDefault<z.ZodLiteral<"pipe-trap">>;
4017
4709
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
4018
4710
  rotation: z.ZodDefault<z.ZodNumber>;
4019
4711
  diameter: z.ZodDefault<z.ZodNumber>;
4020
4712
  pipeMaterial: z.ZodDefault<z.ZodEnum<{
4021
- pvc: "pvc";
4022
4713
  abs: "abs";
4714
+ pvc: "pvc";
4023
4715
  "cast-iron": "cast-iron";
4024
4716
  }>>;
4025
4717
  armLengthM: z.ZodDefault<z.ZodNumber>;
4026
- }, z.core.$strip>], "type">;
4718
+ }, z.core.$strip>>], "type">;
4027
4719
  export type AnyNode = z.infer<typeof AnyNode>;
4028
4720
  export type AnyNodeType = AnyNode['type'];
4029
4721
  export type AnyNodeId = AnyNode['id'];
4722
+ /** One member schema of `AnyNode`, discriminator already projected to a bare literal. */
4723
+ export type AnyNodeOption = (typeof AnyNode)['options'][number];
4724
+ /** The node kind a union member accepts, read off its bare-literal discriminator. */
4725
+ export declare const nodeKindOf: (option: AnyNodeOption) => AnyNodeType;
4726
+ export {};
4030
4727
  //# sourceMappingURL=types.d.ts.map