{"openapi":"3.1.0","info":{"title":"vertical-ai-api","description":"Unified REST gateway across the harness ecosystem's compute domains. Each domain is mounted at its own URL prefix from that domain's own pinned harness repo -- no compute logic is duplicated here. Wave 1: /overhead, /der, /thermal, /controls, /datacenter, /uvm, /usm, /ugm, /ubm, /utm, /circuit, /ada, /ocalc, /spida, /pls, /field-capture, /siting.","version":"0.1.0"},"paths":{"/status":{"get":{"summary":"Status","operationId":"status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Status Status Get"}}}}}}},"/overhead/calculate_conductor_sag_tension_change_of_state":{"post":{"tags":["overhead","conductor_sag"],"summary":"Api Calculate Conductor Sag Tension Change Of State","description":"Bisection-based change-of-state solve for final tension/sag under a target loadcase.","operationId":"api_calculate_conductor_sag_tension_change_of_state_overhead_calculate_conductor_sag_tension_change_of_state_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConductorSagTensionChangeOfStateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeOfStateResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_conductor_blowout_profile":{"post":{"tags":["overhead","conductor_sag"],"summary":"Api Calculate Conductor Blowout Profile","description":"Sampled displaced-conductor shape under transverse wind.","operationId":"api_calculate_conductor_blowout_profile_overhead_calculate_conductor_blowout_profile_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConductorBlowoutProfileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlowoutProfileResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_anchor_holding_capacity":{"post":{"tags":["overhead","anchor_strength"],"summary":"Api Calculate Anchor Holding Capacity","description":"Guy anchor pull-out capacity vs. applied guy tension.","operationId":"api_calculate_anchor_holding_capacity_overhead_calculate_anchor_holding_capacity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchorHoldingCapacityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchorHoldingCapacityResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_resultant_guy_tension":{"post":{"tags":["overhead","guying"],"summary":"Api Calculate Resultant Guy Tension","description":"Project a net unbalanced pull onto a guy's bearing and convert it to wire tension via\nthe guy's own slant angle -- fills the `guy_tension_lb` input\n`calculate_anchor_holding_capacity` expects.","operationId":"api_calculate_resultant_guy_tension_overhead_calculate_resultant_guy_tension_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResultantGuyTensionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResultantGuyTensionResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_ruling_span":{"post":{"tags":["overhead","line_balance"],"summary":"Api Calculate Ruling Span","description":"Equivalent single-span length governing a deadend section's tension.","operationId":"api_calculate_ruling_span_overhead_calculate_ruling_span_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RulingSpanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RulingSpanResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_line_tension_solve":{"post":{"tags":["overhead","line_balance"],"summary":"Api Calculate Line Tension Solve","description":"End-to-end multi-pole line tension balance for one target loadcase.","operationId":"api_calculate_line_tension_solve_overhead_calculate_line_tension_solve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LineTensionSolveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LineSolveResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/determine_nesc_grade":{"post":{"tags":["overhead","loading"],"summary":"Api Determine Nesc Grade","description":"NESC Rule 242 / Table 242-1 grade of construction.","operationId":"api_determine_nesc_grade_overhead_determine_nesc_grade_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescGradeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GradeResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/determine_go95_grade":{"post":{"tags":["overhead","loading"],"summary":"Api Determine Go95 Grade","description":"GO 95 Rule 42 / Table 3 grade of construction.","operationId":"api_determine_go95_grade_overhead_determine_go95_grade_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GO95GradeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GradeResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/determine_csa_grade":{"post":{"tags":["overhead","loading"],"summary":"Api Determine Csa Grade","description":"CSA C22.3 No.1:25 Table 27 in-span crossing grade of construction.","operationId":"api_determine_csa_grade_overhead_determine_csa_grade_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsaGradeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GradeResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/determine_csa_grade_proximity":{"post":{"tags":["overhead","loading"],"summary":"Api Determine Csa Grade Proximity","description":"CSA C22.3 No.1:25 Table 28 proximity grade of construction.","operationId":"api_determine_csa_grade_proximity_overhead_determine_csa_grade_proximity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsaProximityGradeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GradeResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/determine_csa_grade_joint_use":{"post":{"tags":["overhead","loading"],"summary":"Api Determine Csa Grade Joint Use","description":"CSA C22.3 No.1:25 Table 29 joint-use grade of construction.","operationId":"api_determine_csa_grade_joint_use_overhead_determine_csa_grade_joint_use_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsaJointUseGradeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GradeResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_guy_strength_factor":{"post":{"tags":["overhead","loading"],"summary":"Api Calculate Guy Strength Factor","description":"Allowable-tension multiplier for guy strand.","operationId":"api_calculate_guy_strength_factor_overhead_calculate_guy_strength_factor_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuyStrengthFactorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuyStrengthFactorResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/determine_nesc_district":{"post":{"tags":["overhead","loading"],"summary":"Api Determine Nesc District","description":"NESC Rule 250B loading district lookup.","operationId":"api_determine_nesc_district_overhead_determine_nesc_district_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescDistrictRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescDistrictResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/determine_go95_zone":{"post":{"tags":["overhead","loading"],"summary":"Api Determine Go95 Zone","description":"GO 95 Rule 43 elevation-based loading zone.","operationId":"api_determine_go95_zone_overhead_determine_go95_zone_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GO95ZoneRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GO95ZoneResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/lookup_csa_zone_values":{"post":{"tags":["overhead","loading"],"summary":"Api Lookup Csa Zone Values","description":"CSA C22.3 No.1:25 Table 30 loading-zone values for SPIDA authoring.","operationId":"api_lookup_csa_zone_values_overhead_lookup_csa_zone_values_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsaZoneRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsaZoneResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_nesc_261h_tension_limits":{"post":{"tags":["overhead","loading"],"summary":"Api Calculate Nesc 261H Tension Limits","description":"NESC Rule 261H conductor tension limits as %RBS.","operationId":"api_calculate_nesc_261h_tension_limits_overhead_calculate_nesc_261h_tension_limits_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Nesc261hTensionLimitsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Nesc261hLimitsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_sag_check_temperatures":{"post":{"tags":["overhead","loading"],"summary":"Api Calculate Sag Check Temperatures","description":"NESC Rule 232 / GO 95 Rule 43.3 sag-check temperature points.","operationId":"api_calculate_sag_check_temperatures_overhead_calculate_sag_check_temperatures_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SagCheckTemperaturesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SagCheckTemperaturesResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/verify_load_case":{"post":{"tags":["overhead","loading"],"summary":"Api Verify Load Case","description":"Verify a declared load case's grade/zone against the code's own derivation.","operationId":"api_verify_load_case_overhead_verify_load_case_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyLoadCaseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyLoadCaseResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/lookup_go95_table1_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Lookup Go95 Table1 Clearance","description":"GO 95 Table 1 ground/structure clearance.","operationId":"api_lookup_go95_table1_clearance_overhead_lookup_go95_table1_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Go95Table1ClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Go95TableLookupResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/lookup_go95_table2_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Lookup Go95 Table2 Clearance","description":"GO 95 Table 2 conductor-to-conductor clearance.","operationId":"api_lookup_go95_table2_clearance_overhead_lookup_go95_table2_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Go95Table2ClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Go95TableLookupResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_go95_pole_clearances":{"post":{"tags":["overhead","clearance"],"summary":"Api Calculate Go95 Pole Clearances","description":"Full GO 95 Table 1 + Table 2 pole clearance walk.","operationId":"api_calculate_go95_pole_clearances_overhead_calculate_go95_pole_clearances_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Go95PoleClearancesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Go95PoleClearanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_go95_crossarm_horizontal_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Calculate Go95 Crossarm Horizontal Clearance","description":"GO 95 Table 2 Type 4 crossarm horizontal-separation check.","operationId":"api_calculate_go95_crossarm_horizontal_clearance_overhead_calculate_go95_crossarm_horizontal_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Go95CrossarmClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Go95CrossarmClearanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/lookup_nesc_table232_1_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Lookup Nesc Table232 1 Clearance","description":"NESC Table 232-1 ground-level clearance.","operationId":"api_lookup_nesc_table232_1_clearance_overhead_lookup_nesc_table232_1_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescTable232_1ClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescTableLookupResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_nesc_table235_5_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Calculate Nesc Table235 5 Clearance","description":"NESC Table 235-5 conductor-to-conductor vertical clearance at supports.","operationId":"api_calculate_nesc_table235_5_clearance_overhead_calculate_nesc_table235_5_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescTable235_5ClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescTableLookupResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_nesc_table235_6_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Calculate Nesc Table235 6 Clearance","description":"NESC Table 235-6 conductor-to-structure radial clearance.","operationId":"api_calculate_nesc_table235_6_clearance_overhead_calculate_nesc_table235_6_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescTable235_6ClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescTableLookupResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_nesc_pole_clearances":{"post":{"tags":["overhead","clearance"],"summary":"Api Calculate Nesc Pole Clearances","description":"Full NESC Table 232-1 + Table 235-5 pole clearance walk.","operationId":"api_calculate_nesc_pole_clearances_overhead_calculate_nesc_pole_clearances_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescPoleClearancesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescPoleClearanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/validate_cross_line_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Validate Cross Line Clearance","description":"Detect every span-A x span-B crossing between two lines and check midspan vertical\nseparation against GO-95 Rule 38 / Table 2 row 1.","operationId":"api_validate_cross_line_clearance_overhead_validate_cross_line_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossLineClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossLineClearanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_nesc_crossarm_horizontal_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Calculate Nesc Crossarm Horizontal Clearance","description":"NESC Table 235-6 crossarm horizontal-separation check.","operationId":"api_calculate_nesc_crossarm_horizontal_clearance_overhead_calculate_nesc_crossarm_horizontal_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescCrossarmClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NescCrossarmClearanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_csa_table2_clearance":{"post":{"tags":["overhead","clearance"],"summary":"Api Calculate Csa Table2 Clearance","description":"CSA C22.3 No.1:25 Table 2 ground-clearance minimum.","operationId":"api_calculate_csa_table2_clearance_overhead_calculate_csa_table2_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsaTable2ClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsaTable2ClearanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_multi_rod_resistance":{"post":{"tags":["overhead","grounding"],"summary":"Api Calculate Multi Rod Resistance","description":"Driven ground-rod array resistance (Dwight equation + multi-rod coupling).","operationId":"api_calculate_multi_rod_resistance_overhead_calculate_multi_rod_resistance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiRodResistanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundRodResistanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/check_grounding_resistance_against_limit":{"post":{"tags":["overhead","grounding"],"summary":"Api Check Grounding Resistance Against Limit","description":"Compliance check for a calculated grounding resistance vs. a limit.","operationId":"api_check_grounding_resistance_against_limit_overhead_check_grounding_resistance_against_limit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundingComplianceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundingComplianceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_required_vegetation_clearance":{"post":{"tags":["overhead","vegetation"],"summary":"Api Calculate Required Vegetation Clearance","description":"NESC 218 + GO-95 37 regulatory-floor required vegetation clearance.","operationId":"api_calculate_required_vegetation_clearance_overhead_calculate_required_vegetation_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequiredVegetationClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VegetationClearanceDerivationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/calculate_standard_row_width":{"post":{"tags":["overhead","vegetation"],"summary":"Api Calculate Standard Row Width","description":"Standard right-of-way total width by voltage class.","operationId":"api_calculate_standard_row_width_overhead_calculate_standard_row_width_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandardRowWidthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowWidthResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/derive_setting_depth":{"post":{"tags":["overhead","pole_geometry"],"summary":"Api Derive Setting Depth","description":"ANSI O5.1 taper-rate derivation from measured GLC, or ANSI standard setting-depth\nfallback, for a wood pole.","operationId":"api_derive_setting_depth_overhead_derive_setting_depth_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingDepthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingDepthResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/detect_insulator_uplift":{"post":{"tags":["overhead","insulator_uplift"],"summary":"Api Detect Insulator Uplift","description":"Detect insulator uplift across a multi-pole line via a parabolic-sag net-vertical-\nforce approximation at each through-wire suspension insulator.","operationId":"api_detect_insulator_uplift_overhead_detect_insulator_uplift_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsulatorUpliftRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsulatorUpliftResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/compute_midspan_elevations":{"post":{"tags":["overhead","span_clearance"],"summary":"Api Compute Midspan Elevations","description":"Per-crossarm midspan conductor elevations at each code-required sag-check state.","operationId":"api_compute_midspan_elevations_overhead_compute_midspan_elevations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeMidspanElevationsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MidspanElevationsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/overhead/validate_span_clearance":{"post":{"tags":["overhead","span_clearance"],"summary":"Api Validate Span Clearance","description":"Pair adjacent crossarms and check midspan vertical separation at each code-required\nstate against NESC Table 235-5 / GO-95 Table 2.","operationId":"api_validate_span_clearance_overhead_validate_span_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateSpanClearanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateSpanClearanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/der/calculate_usable_energy":{"post":{"tags":["der","der"],"summary":"Api Calculate Usable Energy","description":"Usable energy (kWh) from nameplate capacity, depth of discharge, and reserve margin.","operationId":"api_calculate_usable_energy_der_calculate_usable_energy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateUsableEnergyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsableEnergyResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/der/calculate_state_of_charge":{"post":{"tags":["der","der"],"summary":"Api Calculate State Of Charge","description":"State of charge as a fraction/percent of usable energy capacity.","operationId":"api_calculate_state_of_charge_der_calculate_state_of_charge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateStateOfChargeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateOfChargeResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/der/calculate_c_rate_power_limit":{"post":{"tags":["der","der"],"summary":"Api Calculate C Rate Power Limit","description":"Max sustained charge/discharge power (kW) at a given manufacturer-stated C-rate.","operationId":"api_calculate_c_rate_power_limit_der_calculate_c_rate_power_limit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateCRatePowerLimitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CRatePowerLimitResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/der/calculate_charge_duration":{"post":{"tags":["der","der"],"summary":"Api Calculate Charge Duration","description":"Hours to add energy_needed_kwh at charge_power_kw.","operationId":"api_calculate_charge_duration_der_calculate_charge_duration_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateChargeDurationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChargeDurationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/der/calculate_discharge_duration":{"post":{"tags":["der","der"],"summary":"Api Calculate Discharge Duration","description":"Hours to fully discharge energy_available_kwh at discharge_power_kw.","operationId":"api_calculate_discharge_duration_der_calculate_discharge_duration_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateDischargeDurationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DischargeDurationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/der/calculate_round_trip_efficiency_loss":{"post":{"tags":["der","der"],"summary":"Api Calculate Round Trip Efficiency Loss","description":"Energy recoverable (and lost) from a full charge/discharge cycle at a stated efficiency.","operationId":"api_calculate_round_trip_efficiency_loss_der_calculate_round_trip_efficiency_loss_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateRoundTripEfficiencyLossRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoundTripEfficiencyLossResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/aggregate_rack_heat_load":{"post":{"tags":["thermal","thermal"],"summary":"Api Aggregate Rack Heat Load","description":"Sum liquid/air heat load (kW) across a set of racks.","operationId":"api_aggregate_rack_heat_load_thermal_aggregate_rack_heat_load_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregateRackHeatLoadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeatLoadAggregateResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/check_cooling_capacity_margin":{"post":{"tags":["thermal","thermal"],"summary":"Api Check Cooling Capacity Margin","description":"Compare total cooling demand against summed cooling-unit capacity.","operationId":"api_check_cooling_capacity_margin_thermal_check_cooling_capacity_margin_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckCoolingCapacityMarginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapacityMarginResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/evaluate_quadratic_pq_curve":{"post":{"tags":["thermal","thermal"],"summary":"Api Evaluate Quadratic Pq Curve","description":"Evaluate a pressure-drop-vs-flow quadratic (y = a*x^2 + b*x) at a given flow.","operationId":"api_evaluate_quadratic_pq_curve_thermal_evaluate_quadratic_pq_curve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluateQuadraticPqCurveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PqCurveResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/interpolate_flow_rate_curve":{"post":{"tags":["thermal","thermal"],"summary":"Api Interpolate Flow Rate Curve","description":"Interpolate a flow-rate value at query_x from a temperature-indexed curve.","operationId":"api_interpolate_flow_rate_curve_thermal_interpolate_flow_rate_curve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterpolateFlowRateCurveRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowRateInterpolationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/evaluate_pipe_velocity_for_flow_rate":{"post":{"tags":["thermal","thermal"],"summary":"Api Evaluate Pipe Velocity For Flow Rate","description":"Fluid velocity for a flow rate through a pipe diameter, checked against cited limits.","operationId":"api_evaluate_pipe_velocity_for_flow_rate_thermal_evaluate_pipe_velocity_for_flow_rate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluatePipeVelocityForFlowRateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipeVelocityResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/check_inlet_air_temperature_envelope":{"post":{"tags":["thermal","thermal"],"summary":"Api Check Inlet Air Temperature Envelope","description":"Absolute rack inlet air temperature, checked against an ASHRAE TC 9.9 envelope class.","operationId":"api_check_inlet_air_temperature_envelope_thermal_check_inlet_air_temperature_envelope_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInletAirTemperatureEnvelopeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InletTemperatureEnvelopeResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/evaluate_liquid_cooling_heat_dissipation":{"post":{"tags":["thermal","thermal"],"summary":"Api Evaluate Liquid Cooling Heat Dissipation","description":"Actual heat rejected by a coolant loop from real flow rate and supply/return temps.","operationId":"api_evaluate_liquid_cooling_heat_dissipation_thermal_evaluate_liquid_cooling_heat_dissipation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluateLiquidCoolingHeatDissipationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiquidCoolingHeatDissipationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/build_curve_chart_data":{"post":{"tags":["thermal","thermal"],"summary":"Api Build Curve Chart Data","description":"Chart-ready line/scatter data for a curve + one interpolate_flow_rate_curve result.","operationId":"api_build_curve_chart_data_thermal_build_curve_chart_data_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildCurveChartDataRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurveChartData"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/build_threshold_gauge_chart_data":{"post":{"tags":["thermal","thermal"],"summary":"Api Build Threshold Gauge Chart Data","description":"Chart-ready gauge data for a value against one or more named limits.","operationId":"api_build_threshold_gauge_chart_data_thermal_build_threshold_gauge_chart_data_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildThresholdGaugeChartDataRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThresholdGaugeChartData"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/build_banded_range_chart_data":{"post":{"tags":["thermal","thermal"],"summary":"Api Build Banded Range Chart Data","description":"Chart-ready banded-range data for a value against one or more named (low, high) zones.","operationId":"api_build_banded_range_chart_data_thermal_build_banded_range_chart_data_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildBandedRangeChartDataRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BandedRangeChartData"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/propose_pipe_diameter_remediation":{"post":{"tags":["thermal","thermal"],"summary":"Api Propose Pipe Diameter Remediation","description":"Evaluate candidate pipe diameters at a fixed flow, reporting each one's real outcome.","operationId":"api_propose_pipe_diameter_remediation_thermal_propose_pipe_diameter_remediation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposePipeDiameterRemediationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipeDiameterRemediationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thermal/propose_parallel_pipe_remediation":{"post":{"tags":["thermal","thermal"],"summary":"Api Propose Parallel Pipe Remediation","description":"Evaluate splitting a fixed total flow across candidate parallel-run counts.","operationId":"api_propose_parallel_pipe_remediation_thermal_propose_parallel_pipe_remediation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposeParallelPipeRemediationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParallelPipeRemediationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/controls/calculate_component_availability":{"post":{"tags":["controls","controls"],"summary":"Api Calculate Component Availability","description":"Steady-state availability from Mean Time Between Failures and Mean Time to Repair.","operationId":"api_calculate_component_availability_controls_calculate_component_availability_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateComponentAvailabilityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComponentAvailabilityResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/controls/calculate_redundant_system_availability":{"post":{"tags":["controls","controls"],"summary":"Api Calculate Redundant System Availability","description":"System availability for \"at least required_count of N components must be available\".","operationId":"api_calculate_redundant_system_availability_controls_calculate_redundant_system_availability_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateRedundantSystemAvailabilityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedundantSystemAvailabilityResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/controls/calculate_redundancy_capacity_margin":{"post":{"tags":["controls","controls"],"summary":"Api Calculate Redundancy Capacity Margin","description":"Available capacity/margin when failed_unit_count of unit_count units are down.","operationId":"api_calculate_redundancy_capacity_margin_controls_calculate_redundancy_capacity_margin_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateRedundancyCapacityMarginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedundancyCapacityMarginResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/controls/calculate_transfer_switch_ride_through_margin":{"post":{"tags":["controls","controls"],"summary":"Api Calculate Transfer Switch Ride Through Margin","description":"Margin between a load's ride-through capability and an ATS/STS's transfer time.","operationId":"api_calculate_transfer_switch_ride_through_margin_controls_calculate_transfer_switch_ride_through_margin_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateTransferSwitchRideThroughMarginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferSwitchRideThroughMarginResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/controls/calculate_transformer_capacity_plan":{"post":{"tags":["controls","controls"],"summary":"Api Calculate Transformer Capacity Plan","description":"How many more fixed-size transformer units are needed to serve a real kW load.","operationId":"api_calculate_transformer_capacity_plan_controls_calculate_transformer_capacity_plan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateTransformerCapacityPlanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransformerCapacityPlanResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/controls/evaluate_failover_sequence_candidates":{"post":{"tags":["controls","controls"],"summary":"Api Evaluate Failover Sequence Candidates","description":"Score caller-supplied candidate failover sequences against typed requirements --\ndoes NOT generate a sequence.","operationId":"api_evaluate_failover_sequence_candidates_controls_evaluate_failover_sequence_candidates_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluateFailoverSequenceCandidatesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailoverSequenceEvaluationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/controls/calculate_valve_actuator_torque":{"post":{"tags":["controls","controls"],"summary":"Api Calculate Valve Actuator Torque","description":"Required actuator torque (N*m) for a quarter-turn valve at a given differential\npressure.","operationId":"api_calculate_valve_actuator_torque_controls_calculate_valve_actuator_torque_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateValveActuatorTorqueRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValveActuatorTorqueResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/controls/calculate_valve_stroke_time_margin":{"post":{"tags":["controls","controls"],"summary":"Api Calculate Valve Stroke Time Margin","description":"Margin between a process's required response time and a valve actuator's stroke time.","operationId":"api_calculate_valve_stroke_time_margin_controls_calculate_valve_stroke_time_margin_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateValveStrokeTimeMarginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValveStrokeTimeMarginResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datacenter/list_datacenter_equipment":{"post":{"tags":["datacenter","datacenter"],"summary":"Api List Datacenter Equipment","description":"List all AI-factory equipment currently available in the catalog.","operationId":"api_list_datacenter_equipment_datacenter_list_datacenter_equipment_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EquipmentSummary"},"type":"array","title":"Response Api List Datacenter Equipment Datacenter List Datacenter Equipment Post"}}}}}}},"/datacenter/get_datacenter_equipment":{"post":{"tags":["datacenter","datacenter"],"summary":"Api Get Datacenter Equipment","description":"Full spec for one piece of AI-factory equipment by name.","operationId":"api_get_datacenter_equipment_datacenter_get_datacenter_equipment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetEquipmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentSpec"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datacenter/get_datacenter_connection_points":{"post":{"tags":["datacenter","datacenter"],"summary":"Api Get Datacenter Connection Points","description":"Just the connection points for one piece of equipment, world-space meters.","operationId":"api_get_datacenter_connection_points_datacenter_get_datacenter_connection_points_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetEquipmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ConnectionPoint"},"type":"array","title":"Response Api Get Datacenter Connection Points Datacenter Get Datacenter Connection Points Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datacenter/plan_gpu_capacity":{"post":{"tags":["datacenter","datacenter"],"summary":"Api Plan Gpu Capacity","description":"How many more racks of `equipment_name` are needed to add `additional_gpus` of real\nGPU capacity.","operationId":"api_plan_gpu_capacity_datacenter_plan_gpu_capacity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanGpuCapacityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RackCapacityPlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datacenter/list_cdu_models":{"post":{"tags":["datacenter","datacenter"],"summary":"Api List Cdu Models","description":"List all Coolant Distribution Unit (CDU) models in the catalog.","operationId":"api_list_cdu_models_datacenter_list_cdu_models_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CduModel"},"type":"array","title":"Response Api List Cdu Models Datacenter List Cdu Models Post"}}}}}}},"/datacenter/get_cdu_model_by_key":{"post":{"tags":["datacenter","datacenter"],"summary":"Api Get Cdu Model By Key","description":"Full record for one CDU model by key.","operationId":"api_get_cdu_model_by_key_datacenter_get_cdu_model_by_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCduModelRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CduModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/datacenter/list_gas_turbine_frames":{"post":{"tags":["datacenter","datacenter"],"summary":"Api List Gas Turbine Frames","description":"List all backup gas turbine generator set frames in the catalog.","operationId":"api_list_gas_turbine_frames_datacenter_list_gas_turbine_frames_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GasTurbineFrame"},"type":"array","title":"Response Api List Gas Turbine Frames Datacenter List Gas Turbine Frames Post"}}}}}}},"/datacenter/get_gas_turbine_frame":{"post":{"tags":["datacenter","datacenter"],"summary":"Api Get Gas Turbine Frame","description":"Full record for one gas turbine frame by key.","operationId":"api_get_gas_turbine_frame_datacenter_get_gas_turbine_frame_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetGasTurbineFrameRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GasTurbineFrame"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/healthz":{"get":{"tags":["uvm"],"summary":"Health check","operationId":"healthz_uvm_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Uvm Healthz Get"}}}}}}},"/uvm/calculate_conduit_fill":{"post":{"tags":["uvm"],"summary":"Post Calculate Conduit Fill","operationId":"post_calculate_conduit_fill_uvm_calculate_conduit_fill_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConduitFillRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Conduit Fill Uvm Calculate Conduit Fill Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/get_max_cables_for_conduit":{"post":{"tags":["uvm"],"summary":"Post Get Max Cables For Conduit","operationId":"post_get_max_cables_for_conduit_uvm_get_max_cables_for_conduit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaxCablesForConduitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Get Max Cables For Conduit Uvm Get Max Cables For Conduit Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/recommend_conduit_size":{"post":{"tags":["uvm"],"summary":"Post Recommend Conduit Size","operationId":"post_recommend_conduit_size_uvm_recommend_conduit_size_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendConduitSizeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Recommend Conduit Size Uvm Recommend Conduit Size Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/check_jam_ratio":{"post":{"tags":["uvm"],"summary":"Post Check Jam Ratio","operationId":"post_check_jam_ratio_uvm_check_jam_ratio_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckJamRatioRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Check Jam Ratio Uvm Check Jam Ratio Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_pulling_tension":{"post":{"tags":["uvm"],"summary":"Post Calculate Pulling Tension","operationId":"post_calculate_pulling_tension_uvm_calculate_pulling_tension_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculatePullingTensionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Pulling Tension Uvm Calculate Pulling Tension Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_max_pull_length":{"post":{"tags":["uvm"],"summary":"Post Calculate Max Pull Length","operationId":"post_calculate_max_pull_length_uvm_calculate_max_pull_length_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateMaxPullLengthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Max Pull Length Uvm Calculate Max Pull Length Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/recommend_intermediate_vaults":{"post":{"tags":["uvm"],"summary":"Post Recommend Intermediate Vaults","operationId":"post_recommend_intermediate_vaults_uvm_recommend_intermediate_vaults_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendIntermediateVaultsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Recommend Intermediate Vaults Uvm Recommend Intermediate Vaults Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_cable_ampacity":{"post":{"tags":["uvm"],"summary":"Post Calculate Cable Ampacity","operationId":"post_calculate_cable_ampacity_uvm_calculate_cable_ampacity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateCableAmpacityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Cable Ampacity Uvm Calculate Cable Ampacity Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_ampacity_derating":{"post":{"tags":["uvm"],"summary":"Post Calculate Ampacity Derating","operationId":"post_calculate_ampacity_derating_uvm_calculate_ampacity_derating_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateAmpacityDeratingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Ampacity Derating Uvm Calculate Ampacity Derating Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_emergency_ampacity":{"post":{"tags":["uvm"],"summary":"Post Calculate Emergency Ampacity","operationId":"post_calculate_emergency_ampacity_uvm_calculate_emergency_ampacity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateEmergencyAmpacityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Emergency Ampacity Uvm Calculate Emergency Ampacity Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_voltage_drop":{"post":{"tags":["uvm"],"summary":"Post Calculate Voltage Drop","operationId":"post_calculate_voltage_drop_uvm_calculate_voltage_drop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateVoltageDropRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Voltage Drop Uvm Calculate Voltage Drop Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/typical_soil_thermal_resistivity":{"post":{"tags":["uvm"],"summary":"Post Typical Soil Thermal Resistivity","description":"Real IEC 60287-3-1:2017 Table 2 typical native-soil thermal resistivity, in\ncalculate_cable_ampacity's own rho_soil convention -- a cited fallback for that function's own\ndefault when no real field/lab measurement exists yet. Pass either a known moisture category\n(very_moist/moist/dry/very_dry) directly, or a free-text soil remark to classify first;\ncategory takes precedence if both are given.","operationId":"post_typical_soil_thermal_resistivity_uvm_typical_soil_thermal_resistivity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TypicalSoilThermalResistivityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Typical Soil Thermal Resistivity Uvm Typical Soil Thermal Resistivity Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/recommend_vault_size":{"post":{"tags":["uvm"],"summary":"Post Recommend Vault Size","operationId":"post_recommend_vault_size_uvm_recommend_vault_size_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendVaultSizeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Recommend Vault Size Uvm Recommend Vault Size Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/check_working_clearances":{"post":{"tags":["uvm"],"summary":"Post Check Working Clearances","operationId":"post_check_working_clearances_uvm_check_working_clearances_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckWorkingClearancesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Check Working Clearances Uvm Check Working Clearances Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_minimum_bending_radius":{"post":{"tags":["uvm"],"summary":"Post Calculate Minimum Bending Radius","operationId":"post_calculate_minimum_bending_radius_uvm_calculate_minimum_bending_radius_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateMinimumBendingRadiusRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Minimum Bending Radius Uvm Calculate Minimum Bending Radius Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/check_pad_mount_clearances":{"post":{"tags":["uvm"],"summary":"Post Check Pad Mount Clearances","operationId":"post_check_pad_mount_clearances_uvm_check_pad_mount_clearances_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPadMountClearancesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Check Pad Mount Clearances Uvm Check Pad Mount Clearances Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_vault_conduit_utilization":{"post":{"tags":["uvm"],"summary":"Post Calculate Vault Conduit Utilization","operationId":"post_calculate_vault_conduit_utilization_uvm_calculate_vault_conduit_utilization_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateVaultConduitUtilizationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Vault Conduit Utilization Uvm Calculate Vault Conduit Utilization Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_riser_dead_load":{"post":{"tags":["uvm"],"summary":"Post Calculate Riser Dead Load","operationId":"post_calculate_riser_dead_load_uvm_calculate_riser_dead_load_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateRiserDeadLoadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Riser Dead Load Uvm Calculate Riser Dead Load Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/size_riser_conduit":{"post":{"tags":["uvm"],"summary":"Post Size Riser Conduit","operationId":"post_size_riser_conduit_uvm_size_riser_conduit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SizeRiserConduitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Size Riser Conduit Uvm Size Riser Conduit Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/specify_riser_equipment":{"post":{"tags":["uvm"],"summary":"Post Specify Riser Equipment","operationId":"post_specify_riser_equipment_uvm_specify_riser_equipment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpecifyRiserEquipmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Specify Riser Equipment Uvm Specify Riser Equipment Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_cable_fault_withstand":{"post":{"tags":["uvm"],"summary":"Post Calculate Cable Fault Withstand","operationId":"post_calculate_cable_fault_withstand_uvm_calculate_cable_fault_withstand_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateCableFaultWithstandRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Cable Fault Withstand Uvm Calculate Cable Fault Withstand Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/check_cable_fault_adequacy":{"post":{"tags":["uvm"],"summary":"Post Check Cable Fault Adequacy","operationId":"post_check_cable_fault_adequacy_uvm_check_cable_fault_adequacy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckCableFaultAdequacyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Check Cable Fault Adequacy Uvm Check Cable Fault Adequacy Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_concentric_neutral_adequacy":{"post":{"tags":["uvm"],"summary":"Post Calculate Concentric Neutral Adequacy","operationId":"post_calculate_concentric_neutral_adequacy_uvm_calculate_concentric_neutral_adequacy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateConcentricNeutralAdequacyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Concentric Neutral Adequacy Uvm Calculate Concentric Neutral Adequacy Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_arc_flash_energy":{"post":{"tags":["uvm"],"summary":"Post Calculate Arc Flash Energy","operationId":"post_calculate_arc_flash_energy_uvm_calculate_arc_flash_energy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateArcFlashEnergyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Arc Flash Energy Uvm Calculate Arc Flash Energy Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/design_duct_bank_layout":{"post":{"tags":["uvm"],"summary":"Post Design Duct Bank Layout","operationId":"post_design_duct_bank_layout_uvm_design_duct_bank_layout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesignDuctBankLayoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Design Duct Bank Layout Uvm Design Duct Bank Layout Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_duct_bank_ampacity":{"post":{"tags":["uvm"],"summary":"Post Calculate Duct Bank Ampacity","operationId":"post_calculate_duct_bank_ampacity_uvm_calculate_duct_bank_ampacity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateDuctBankAmpacityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Duct Bank Ampacity Uvm Calculate Duct Bank Ampacity Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_concrete_encasement":{"post":{"tags":["uvm"],"summary":"Post Calculate Concrete Encasement","operationId":"post_calculate_concrete_encasement_uvm_calculate_concrete_encasement_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateConcreteEncasementRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Concrete Encasement Uvm Calculate Concrete Encasement Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/calculate_trench_dimensions":{"post":{"tags":["uvm"],"summary":"Post Calculate Trench Dimensions","operationId":"post_calculate_trench_dimensions_uvm_calculate_trench_dimensions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateTrenchDimensionsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Calculate Trench Dimensions Uvm Calculate Trench Dimensions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/list_pge_enclosures":{"get":{"tags":["uvm"],"summary":"Get List Pge Enclosures","operationId":"get_list_pge_enclosures_uvm_list_pge_enclosures_get","parameters":[{"name":"voltage_class","in":"query","required":false,"schema":{"anyOf":[{"enum":["primary","secondary"],"type":"string"},{"type":"null"}],"title":"Voltage Class"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get List Pge Enclosures Uvm List Pge Enclosures Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/list_pmh_switches":{"get":{"tags":["uvm"],"summary":"Get List Pmh Switches","operationId":"get_list_pmh_switches_uvm_list_pmh_switches_get","parameters":[{"name":"voltage_kv","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voltage Kv"}},{"name":"way_count","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Way Count"}},{"name":"pge_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Pge Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get List Pmh Switches Uvm List Pmh Switches Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uvm/recommend_pmh_companion_vault":{"post":{"tags":["uvm"],"summary":"Post Recommend Pmh Companion Vault","description":"Recommend the PG&E primary splice/pull vault to pair with a PMH switch, per PG&E doc\n053318 page 3 note 2 + doc 062000 Table 1. This route omits the MCP tool's optional\n`pmh_vault_id` convenience (look up traffic rating from an existing session-scoped vault) --\nthat's session-aware harness behavior, not something a standalone REST caller can use; pass\n`traffic_rating` directly instead.","operationId":"post_recommend_pmh_companion_vault_uvm_recommend_pmh_companion_vault_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendPmhCompanionVaultRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Recommend Pmh Companion Vault Uvm Recommend Pmh Companion Vault Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/healthz":{"get":{"tags":["usm"],"summary":"Health check","operationId":"healthz_usm_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Usm Healthz Get"}}}}}}},"/usm/check_substation_fence_clearance":{"post":{"tags":["usm"],"summary":"Post Check Substation Fence Clearance","operationId":"post_check_substation_fence_clearance_usm_check_substation_fence_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationFenceClearanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_fence_height":{"post":{"tags":["usm"],"summary":"Post Check Substation Fence Height","operationId":"post_check_substation_fence_height_usm_check_substation_fence_height_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationFenceHeightInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_equipment_ground_clearance":{"post":{"tags":["usm"],"summary":"Post Check Substation Equipment Ground Clearance","operationId":"post_check_substation_equipment_ground_clearance_usm_check_substation_equipment_ground_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationEquipmentGroundClearanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_rigid_bus_metal_to_metal_clearance":{"post":{"tags":["usm"],"summary":"Post Check Substation Rigid Bus Metal To Metal Clearance","operationId":"post_check_substation_rigid_bus_metal_to_metal_clearance_usm_check_substation_rigid_bus_metal_to_metal_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationRigidBusMetalToMetalClearanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_rigid_bus_phase_spacing":{"post":{"tags":["usm"],"summary":"Post Check Substation Rigid Bus Phase Spacing","operationId":"post_check_substation_rigid_bus_phase_spacing_usm_check_substation_rigid_bus_phase_spacing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationRigidBusPhaseSpacingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_rigid_bus_grounded_parts_clearance":{"post":{"tags":["usm"],"summary":"Post Check Substation Rigid Bus Grounded Parts Clearance","operationId":"post_check_substation_rigid_bus_grounded_parts_clearance_usm_check_substation_rigid_bus_grounded_parts_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationRigidBusGroundedPartsClearanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_roadway_overhead_clearance":{"post":{"tags":["usm"],"summary":"Post Check Substation Roadway Overhead Clearance","operationId":"post_check_substation_roadway_overhead_clearance_usm_check_substation_roadway_overhead_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationRoadwayOverheadClearanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_air_switch_metal_to_metal_clearance":{"post":{"tags":["usm"],"summary":"Post Check Substation Air Switch Metal To Metal Clearance","operationId":"post_check_substation_air_switch_metal_to_metal_clearance_usm_check_substation_air_switch_metal_to_metal_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationAirSwitchMetalToMetalClearanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_vertical_break_disconnect_switch_spacing":{"post":{"tags":["usm"],"summary":"Post Check Substation Vertical Break Disconnect Switch Spacing","operationId":"post_check_substation_vertical_break_disconnect_switch_spacing_usm_check_substation_vertical_break_disconnect_switch_spacing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationVerticalBreakDisconnectSwitchSpacingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_side_horizontal_break_disconnect_switch_spacing":{"post":{"tags":["usm"],"summary":"Post Check Substation Side Horizontal Break Disconnect Switch Spacing","operationId":"post_check_substation_side_horizontal_break_disconnect_switch_spacing_usm_check_substation_side_horizontal_break_disconnect_switch_spacing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationSideHorizontalBreakDisconnectSwitchSpacingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_horn_gap_switch_spacing":{"post":{"tags":["usm"],"summary":"Post Check Substation Horn Gap Switch Spacing","operationId":"post_check_substation_horn_gap_switch_spacing_usm_check_substation_horn_gap_switch_spacing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationHornGapSwitchSpacingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_insulator_cantilever_strength":{"post":{"tags":["usm"],"summary":"Post Check Substation Insulator Cantilever Strength","operationId":"post_check_substation_insulator_cantilever_strength_usm_check_substation_insulator_cantilever_strength_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationInsulatorCantileverStrengthInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_fence_grounding_bonding_completeness":{"post":{"tags":["usm"],"summary":"Post Check Substation Fence Grounding Bonding Completeness","operationId":"post_check_substation_fence_grounding_bonding_completeness_usm_check_substation_fence_grounding_bonding_completeness_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationFenceGroundingBondingCompletenessInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_safety_sign_placement":{"post":{"tags":["usm"],"summary":"Post Check Substation Safety Sign Placement","operationId":"post_check_substation_safety_sign_placement_usm_check_substation_safety_sign_placement_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationSafetySignPlacementInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_illumination_levels":{"post":{"tags":["usm"],"summary":"Post Check Substation Illumination Levels","operationId":"post_check_substation_illumination_levels_usm_check_substation_illumination_levels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationIlluminationLevelsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_emergency_lighting":{"post":{"tags":["usm"],"summary":"Post Check Substation Emergency Lighting","operationId":"post_check_substation_emergency_lighting_usm_check_substation_emergency_lighting_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationEmergencyLightingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_floor_passageway_safety":{"post":{"tags":["usm"],"summary":"Post Check Substation Floor Passageway Safety","operationId":"post_check_substation_floor_passageway_safety_usm_check_substation_floor_passageway_safety_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationFloorPassagewaySafetyInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_exit_requirements":{"post":{"tags":["usm"],"summary":"Post Check Substation Exit Requirements","operationId":"post_check_substation_exit_requirements_usm_check_substation_exit_requirements_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationExitRequirementsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_fire_extinguishing_equipment":{"post":{"tags":["usm"],"summary":"Post Check Substation Fire Extinguishing Equipment","operationId":"post_check_substation_fire_extinguishing_equipment_usm_check_substation_fire_extinguishing_equipment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationFireExtinguishingEquipmentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_substation_lighting_and_receptacle_installation":{"post":{"tags":["usm"],"summary":"Post Check Substation Lighting And Receptacle Installation","operationId":"post_check_substation_lighting_and_receptacle_installation_usm_check_substation_lighting_and_receptacle_installation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSubstationLightingAndReceptacleInstallationInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/check_bus_configuration_breaker_count":{"post":{"tags":["usm"],"summary":"Post Check Bus Configuration Breaker Count","operationId":"post_check_bus_configuration_breaker_count_usm_check_bus_configuration_breaker_count_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckBusConfigurationBreakerCountInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopologyCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/validate_substation":{"post":{"tags":["usm"],"summary":"Post Validate Substation","description":"Runs all 21 check functions in this repo against one Substation object at once\n(validate_substation.py). Wiring only — no remediation logic exists in this repo for\nany check (see gateway_core_integration_plan.md Part XVIII). Most of the 21 internal\nadapters honestly map several inputs to None where Substation has no schema field yet\nfor them — each affected check's own `notes` in the response discloses this per-check\nin free text, same as an individual call to that check would. `all_compliant` excludes\nillumination_levels (NESC 111A is \"recommended,\" not \"shall\") and cannot distinguish\n\"every check passed\" from \"no measured data was supplied at all\" — both pre-existing,\ndisclosed properties of validate_substation.py itself, unchanged by this route.","operationId":"post_validate_substation_usm_validate_substation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Substation"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubstationValidationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/usm/render_substation_scene":{"post":{"tags":["usm"],"summary":"Post Render Substation Scene","description":"Emit this substation as a real, typed PortableModel scene-rendering payload (geometry,\nnot a compliance verdict) -- mcp/server.py's own render_substation_scene tool, added here\n2026-08-15 (this route was missing when mcp/server.py's tool was added; see that tool's own\ndocstring for the full rationale on why this result shape gets its own endpoint rather than\noverloading a ComplianceCheckResult-shaped one).\n\ngrid-model-forge-schema is a real base dependency of this repo (pyproject.toml), so the\nlazy import below is defensive insurance, not the primary gate -- kept for parity with\nmcp/server.py's own equivalent guard. Returns 503 if a deployment somehow lacks it; every\nother route is unaffected.","operationId":"post_render_substation_scene_usm_render_substation_scene_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Substation"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Render Substation Scene Usm Render Substation Scene Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/healthz":{"get":{"tags":["ugm"],"summary":"Health check","operationId":"healthz_ugm_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Ugm Healthz Get"}}}}}}},"/ugm/check_der_cease_to_energize_time":{"post":{"tags":["ugm"],"summary":"Post Check Der Cease To Energize Time","operationId":"post_check_der_cease_to_energize_time_ugm_check_der_cease_to_energize_time_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerCeaseToEnergizeTimeInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_restore_output_timing":{"post":{"tags":["ugm"],"summary":"Post Check Der Restore Output Timing","operationId":"post_check_der_restore_output_timing_ugm_check_der_restore_output_timing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerRestoreOutputTimingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_rocof_ride_through":{"post":{"tags":["ugm"],"summary":"Post Check Der Rocof Ride Through","operationId":"post_check_der_rocof_ride_through_ugm_check_der_rocof_ride_through_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerRocofRideThroughInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_voltage_phase_jump_ride_through":{"post":{"tags":["ugm"],"summary":"Post Check Der Voltage Phase Jump Ride Through","operationId":"post_check_der_voltage_phase_jump_ride_through_ugm_check_der_voltage_phase_jump_ride_through_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerVoltagePhaseJumpRideThroughInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_voltage_unbalance_ride_through":{"post":{"tags":["ugm"],"summary":"Post Check Der Voltage Unbalance Ride Through","operationId":"post_check_der_voltage_unbalance_ride_through_ugm_check_der_voltage_unbalance_ride_through_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerVoltageUnbalanceRideThroughInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_poi_fault_contribution_adequacy":{"post":{"tags":["ugm"],"summary":"NEC 705.16/110.9 POI fault-current interrupting-rating adequacy","description":"Check NEC 705.16/110.9 point-of-interconnection equipment fault-current interrupting-rating adequacy. NOT an IEEE 1547 citation, unlike every other check in this API -- see the function's own module docstring and standards file for why.\n\nIMPORTANT: if input.equipment_ownership is UTILITY_OWNED, a compliant=True result means \"this check does not apply\" (NEC 705.16/110.9 only governs customer-side equipment; utility-owned equipment is NESC/IEEE C2 territory), NOT \"this equipment is adequate\" -- read the notes field before treating this result as a pass. See the function's own module docstring's \"Scope-guard\" section. (Same caveat carried by mcp/server.py's check_poi_fault_contribution_adequacy tool docstring.)","operationId":"post_check_poi_fault_contribution_adequacy_ugm_check_poi_fault_contribution_adequacy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPoiFaultContributionAdequacyInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_fast_track_15_percent_screen":{"post":{"tags":["ugm"],"summary":"FERC pro forma SGIP 2.2.1.2 aggregate-generation 15% screen","description":"Check FERC pro forma SGIP 2.2.1.2 aggregate-generation-vs-line-section-peak-load screen (the \"15% screen\"). NOT an IEEE 1547 citation. A compliant=True result means only this one screen passed -- NOT Fast Track eligibility and NOT overall Initial Review approval, see the function's own module docstring. (Same caveat carried by mcp/server.py's check_der_fast_track_15_percent_screen tool docstring.)","operationId":"post_check_der_fast_track_15_percent_screen_ugm_check_der_fast_track_15_percent_screen_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerFastTrack15PercentScreenInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerFastTrack15PercentScreenResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_voltage_ride_through_zone":{"post":{"tags":["ugm"],"summary":"Post Check Der Voltage Ride Through Zone","operationId":"post_check_der_voltage_ride_through_zone_ugm_check_der_voltage_ride_through_zone_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerVoltageRideThroughZoneInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_frequency_ride_through_zone":{"post":{"tags":["ugm"],"summary":"Post Check Der Frequency Ride Through Zone","operationId":"post_check_der_frequency_ride_through_zone_ugm_check_der_frequency_ride_through_zone_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerFrequencyRideThroughZoneInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_return_to_service_delay":{"post":{"tags":["ugm"],"summary":"Post Check Der Return To Service Delay","operationId":"post_check_der_return_to_service_delay_ugm_check_der_return_to_service_delay_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerReturnToServiceDelayInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_fault_current_contribution_10_percent_screen":{"post":{"tags":["ugm"],"summary":"FERC pro forma SGIP 2.2.1.4 fault-current-contribution 10% screen","description":"Check FERC pro forma SGIP 2.2.1.4 fault-current-contribution screen (the \"10% screen\"). NOT an IEEE 1547 citation. A compliant=True result means only this one screen passed -- NOT Fast Track eligibility, NOT overall Initial Review approval, and NOT the related 87.5% short-circuit-interrupting-capacity screen (see check_der_short_circuit_interrupting_capacity_87_5_percent_screen), see the function's own module docstring. (Same caveat carried by mcp/server.py's check_der_fault_current_contribution_10_percent_screen tool docstring.)","operationId":"post_check_der_fault_current_contribution_10_percent_screen_ugm_check_der_fault_current_contribution_10_percent_screen_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerFaultCurrentContributionScreenInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerFaultCurrentContributionScreenResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_short_circuit_interrupting_capacity_87_5_percent_screen":{"post":{"tags":["ugm"],"summary":"FERC pro forma SGIP 2.2.1.5 short-circuit-interrupting-capacity 87.5% screen","description":"Check FERC pro forma SGIP 2.2.1.5 short-circuit-interrupting-capacity screen (the \"87.5% screen\"). NOT an IEEE 1547 citation. A compliant=True result means only this one screen passed -- NOT Fast Track eligibility, NOT overall Initial Review approval, and NOT the related 10% fault-current-contribution screen or check_poi_fault_contribution_adequacy's NEC rating-adequacy check, see the function's own module docstring. (Same caveat carried by mcp/server.py's check_der_short_circuit_interrupting_capacity_87_5_percent_screen tool docstring.)","operationId":"post_check_der_short_circuit_interrupting_capacity_87_5_percent_screen_ugm_check_der_short_circuit_interrupting_capacity_87_5_percent_screen_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerShortCircuitInterruptingCapacityScreenInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerShortCircuitInterruptingCapacityScreenResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_single_phase_shared_secondary_20kw_screen":{"post":{"tags":["ugm"],"summary":"FERC pro forma SGIP 2.2.1.7 single-phase shared-secondary 20 kW screen","description":"Check FERC pro forma SGIP 2.2.1.7 single-phase shared-secondary aggregate-capacity screen (a flat 20 kW ceiling, not a percentage). NOT an IEEE 1547 citation. Only applies when the proposed facility is single-phase and shares a secondary transformer with other generation -- a compliant=True result means only this one narrow screen passed, NOT Fast Track eligibility, NOT overall Initial Review approval, and NOT any of the other SGIP 2.2.1 screens, see the function's own module docstring. (Same caveat carried by mcp/server.py's check_der_single_phase_shared_secondary_20kw_screen tool docstring.)","operationId":"post_check_der_single_phase_shared_secondary_20kw_screen_ugm_check_der_single_phase_shared_secondary_20kw_screen_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerSinglePhaseSharedSecondaryScreenInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_240v_service_imbalance_screen":{"post":{"tags":["ugm"],"summary":"FERC pro forma SGIP 2.2.1.8 240V-service imbalance screen","description":"Check FERC pro forma SGIP 2.2.1.8 240V-service imbalance screen. NOT an IEEE 1547 citation. Only applies to single-phase facilities interconnecting at a 240V center-tap-neutral service -- a compliant=True result means only this one narrow screen passed, NOT Fast Track eligibility, NOT overall Initial Review approval, and NOT any of the other SGIP 2.2.1 screens, see the function's own module docstring. (Same caveat carried by mcp/server.py's check_der_240v_service_imbalance_screen tool docstring.)","operationId":"post_check_der_240v_service_imbalance_screen_ugm_check_der_240v_service_imbalance_screen_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDer240vServiceImbalanceScreenInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDer240vServiceImbalanceScreenResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ugm/check_der_transient_stability_10mw_screen":{"post":{"tags":["ugm"],"summary":"FERC pro forma SGIP 2.2.1.9 transient-stability-limitation 10 MW screen","description":"Check FERC pro forma SGIP 2.2.1.9 transient-stability-limitation screen (a flat 10 MW ceiling, not a percentage). NOT an IEEE 1547 citation.\n\nIMPORTANT: if input.area_has_known_or_posted_transient_stability_limitations is False or unset (None), a compliant=True result means \"this screen was not evaluated\" (confirmed not applicable, or not enough information to tell), NOT \"this facility passed a 10 MW check\" -- read the notes field before treating this result as a pass. Only when that field is explicitly True does a compliant=True result mean the 10 MW comparison actually ran and passed -- and even then, NOT Fast Track eligibility, NOT overall Initial Review approval, and NOT any of the other SGIP 2.2.1 screens, see the function's own module docstring. (Same caveat carried by mcp/server.py's check_der_transient_stability_10mw_screen tool docstring.)","operationId":"post_check_der_transient_stability_10mw_screen_ugm_check_der_transient_stability_10mw_screen_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDerTransientStability10mwScreenInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/healthz":{"get":{"tags":["ubm"],"summary":"Health check","operationId":"healthz_ubm_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Ubm Healthz Get"}}}}}}},"/ubm/check_panel_working_clearance":{"post":{"tags":["ubm"],"summary":"Post Check Panel Working Clearance","operationId":"post_check_panel_working_clearance_ubm_check_panel_working_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPanelWorkingClearanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_breaker_conductor_ampacity_match":{"post":{"tags":["ubm"],"summary":"Post Check Breaker Conductor Ampacity Match","operationId":"post_check_breaker_conductor_ampacity_match_ubm_check_breaker_conductor_ampacity_match_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckBreakerConductorAmpacityMatchInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_equipment_grounding_conductor_size":{"post":{"tags":["ubm"],"summary":"Post Check Equipment Grounding Conductor Size","operationId":"post_check_equipment_grounding_conductor_size_ubm_check_equipment_grounding_conductor_size_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckEquipmentGroundingConductorSizeInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_equipment_interrupting_rating":{"post":{"tags":["ubm"],"summary":"Post Check Equipment Interrupting Rating","operationId":"post_check_equipment_interrupting_rating_ubm_check_equipment_interrupting_rating_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckEquipmentInterruptingRatingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_gfci_afci_required_by_location":{"post":{"tags":["ubm"],"summary":"Post Check Gfci Afci Required By Location","operationId":"post_check_gfci_afci_required_by_location_ubm_check_gfci_afci_required_by_location_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckGfciAfciRequiredByLocationInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_panel_space_requirements":{"post":{"tags":["ubm"],"summary":"Post Check Panel Space Requirements","operationId":"post_check_panel_space_requirements_ubm_check_panel_space_requirements_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPanelSpaceRequirementsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_panelboard_rating_and_schedule":{"post":{"tags":["ubm"],"summary":"Post Check Panelboard Rating And Schedule","operationId":"post_check_panelboard_rating_and_schedule_ubm_check_panelboard_rating_and_schedule_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPanelboardRatingAndScheduleInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_receptacle_outlet_spacing":{"post":{"tags":["ubm"],"summary":"Post Check Receptacle Outlet Spacing","operationId":"post_check_receptacle_outlet_spacing_ubm_check_receptacle_outlet_spacing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckReceptacleOutletSpacingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_receptacle_requirements":{"post":{"tags":["ubm"],"summary":"Post Check Receptacle Requirements","operationId":"post_check_receptacle_requirements_ubm_check_receptacle_requirements_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckReceptacleRequirementsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_service_disconnect_requirements":{"post":{"tags":["ubm"],"summary":"Post Check Service Disconnect Requirements","operationId":"post_check_service_disconnect_requirements_ubm_check_service_disconnect_requirements_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckServiceDisconnectRequirementsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_switch_requirements":{"post":{"tags":["ubm"],"summary":"Post Check Switch Requirements","operationId":"post_check_switch_requirements_ubm_check_switch_requirements_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSwitchRequirementsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_underground_installation_cover":{"post":{"tags":["ubm"],"summary":"Post Check Underground Installation Cover","operationId":"post_check_underground_installation_cover_ubm_check_underground_installation_cover_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckUndergroundInstallationCoverInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ubm/check_wiring_method_support_spacing":{"post":{"tags":["ubm"],"summary":"Post Check Wiring Method Support Spacing","operationId":"post_check_wiring_method_support_spacing_ubm_check_wiring_method_support_spacing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckWiringMethodSupportSpacingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ubm_agent_harness__functions__electrical__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/healthz":{"get":{"tags":["utm"],"summary":"Health check","operationId":"healthz_utm_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Utm Healthz Get"}}}}}}},"/utm/insulator_swing_angle":{"post":{"tags":["utm"],"summary":"Post Insulator Swing Angle","operationId":"post_insulator_swing_angle_utm_insulator_swing_angle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsulatorSwingAngleInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post Insulator Swing Angle Utm Insulator Swing Angle Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/insulator_required_vertical_span":{"post":{"tags":["utm"],"summary":"Post Insulator Required Vertical Span","operationId":"post_insulator_required_vertical_span_utm_insulator_required_vertical_span_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsulatorRequiredVerticalSpanInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post Insulator Required Vertical Span Utm Insulator Required Vertical Span Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/pole_capacity/ground_line_method":{"post":{"tags":["utm"],"summary":"Post Pole Capacity Ground Line Method","operationId":"post_pole_capacity_ground_line_method_utm_pole_capacity_ground_line_method_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoleCapacityGroundLineMethodInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Pole Capacity Ground Line Method Utm Pole Capacity Ground Line Method Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/pole_capacity/point_of_maximum_stress_method":{"post":{"tags":["utm"],"summary":"Post Pole Capacity Point Of Maximum Stress Method","operationId":"post_pole_capacity_point_of_maximum_stress_method_utm_pole_capacity_point_of_maximum_stress_method_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoleCapacityPointOfMaximumStressMethodInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Pole Capacity Point Of Maximum Stress Method Utm Pole Capacity Point Of Maximum Stress Method Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/crossarm_max_vertical_span":{"post":{"tags":["utm"],"summary":"Post Crossarm Max Vertical Span","operationId":"post_crossarm_max_vertical_span_utm_crossarm_max_vertical_span_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossarmMaxVerticalSpanInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post Crossarm Max Vertical Span Utm Crossarm Max Vertical Span Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/guying/bisector_guy_loads":{"post":{"tags":["utm"],"summary":"Post Guying Bisector Guy Loads","operationId":"post_guying_bisector_guy_loads_utm_guying_bisector_guy_loads_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuyingBisectorGuyLoadsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Guying Bisector Guy Loads Utm Guying Bisector Guy Loads Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/guying/column_buckling_load":{"post":{"tags":["utm"],"summary":"Post Guying Column Buckling Load","operationId":"post_guying_column_buckling_load_utm_guying_column_buckling_load_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuyingColumnBucklingLoadInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post Guying Column Buckling Load Utm Guying Column Buckling Load Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/point_of_contraflexure_ratio":{"post":{"tags":["utm"],"summary":"Post H Frame Point Of Contraflexure Ratio","operationId":"post_h_frame_point_of_contraflexure_ratio_utm_h_frame_point_of_contraflexure_ratio_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFramePointOfContraflexureRatioInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Point Of Contraflexure Ratio Utm H Frame Point Of Contraflexure Ratio Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_at_b":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span At B","operationId":"post_h_frame_horizontal_span_at_b_utm_h_frame_horizontal_span_at_b_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanAtBInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span At B Utm H Frame Horizontal Span At B Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_at_e":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span At E","operationId":"post_h_frame_horizontal_span_at_e_utm_h_frame_horizontal_span_at_e_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanAtEInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span At E Utm H Frame Horizontal Span At E Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_limited_by_crossbrace":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span Limited By Crossbrace","operationId":"post_h_frame_horizontal_span_limited_by_crossbrace_utm_h_frame_horizontal_span_limited_by_crossbrace_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanLimitedByCrossbraceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span Limited By Crossbrace Utm H Frame Horizontal Span Limited By Crossbrace Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/crossbrace_u_term":{"post":{"tags":["utm"],"summary":"Post H Frame Crossbrace U Term","operationId":"post_h_frame_crossbrace_u_term_utm_h_frame_crossbrace_u_term_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameCrossbraceUTermInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Crossbrace U Term Utm H Frame Crossbrace U Term Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/crossbrace_v_term":{"post":{"tags":["utm"],"summary":"Post H Frame Crossbrace V Term","operationId":"post_h_frame_crossbrace_v_term_utm_h_frame_crossbrace_v_term_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameCrossbraceVTermInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Crossbrace V Term Utm H Frame Crossbrace V Term Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_limited_by_crossbrace_no_offset":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span Limited By Crossbrace No Offset","description":"Structures 2/3 (single crossbrace, Eq. 13-19e) or Structure 5 (double crossbrace,\nEq. 13-22).","operationId":"post_h_frame_horizontal_span_limited_by_crossbrace_no_offset_utm_h_frame_horizontal_span_limited_by_crossbrace_no_offset_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanLimitedByCrossbraceNoOffsetInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span Limited By Crossbrace No Offset Utm H Frame Horizontal Span Limited By Crossbrace No Offset Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/uplift_bearing_x_term":{"post":{"tags":["utm"],"summary":"Post H Frame Uplift Bearing X Term","operationId":"post_h_frame_uplift_bearing_x_term_utm_h_frame_uplift_bearing_x_term_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameUpliftBearingXTermInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Uplift Bearing X Term Utm H Frame Uplift Bearing X Term Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/uplift_bearing_y_term":{"post":{"tags":["utm"],"summary":"Post H Frame Uplift Bearing Y Term","operationId":"post_h_frame_uplift_bearing_y_term_utm_h_frame_uplift_bearing_y_term_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameUpliftBearingYTermInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Uplift Bearing Y Term Utm H Frame Uplift Bearing Y Term Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/w1_skin_friction_resistance":{"post":{"tags":["utm"],"summary":"Post H Frame W1 Skin Friction Resistance","description":"Lower-confidence tier — see functions/h_frame.py's module docstring.","operationId":"post_h_frame_w1_skin_friction_resistance_utm_h_frame_w1_skin_friction_resistance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameW1SkinFrictionResistanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame W1 Skin Friction Resistance Utm H Frame W1 Skin Friction Resistance Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/w2_bearing_resistance":{"post":{"tags":["utm"],"summary":"Post H Frame W2 Bearing Resistance","description":"Lower-confidence tier — see functions/h_frame.py's module docstring.","operationId":"post_h_frame_w2_bearing_resistance_utm_h_frame_w2_bearing_resistance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameW2BearingResistanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame W2 Bearing Resistance Utm H Frame W2 Bearing Resistance Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/uplift_relationship":{"post":{"tags":["utm"],"summary":"Post H Frame Uplift Relationship","operationId":"post_h_frame_uplift_relationship_utm_h_frame_uplift_relationship_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameUpliftRelationshipInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post H Frame Uplift Relationship Utm H Frame Uplift Relationship Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/bearing_relationship":{"post":{"tags":["utm"],"summary":"Post H Frame Bearing Relationship","description":"Lowest-confidence function in `functions/h_frame.py` — no worked example, and Eq. 13-19g\ncarries an unresolved footnote marker with no accompanying footnote text in the excerpt; see\nmodule docstring.","operationId":"post_h_frame_bearing_relationship_utm_h_frame_bearing_relationship_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameBearingRelationshipInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post H Frame Bearing Relationship Utm H Frame Bearing Relationship Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_at_d":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span At D","description":"Structures 2/3/4 (shared), Eq. 13-19c. Formula-consistency tier — `MD` not independently\ncross-checkable, see module docstring.","operationId":"post_h_frame_horizontal_span_at_d_utm_h_frame_horizontal_span_at_d_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanAtDInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span At D Utm H Frame Horizontal Span At D Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_at_a":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span At A","description":"Structures 2/3/4 (shared), Eq. 13-19d. `MA` cross-checks within ~0.4% against\n`/lookup/groundline_moment_capacity` — see module docstring.","operationId":"post_h_frame_horizontal_span_at_a_utm_h_frame_horizontal_span_at_a_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanAtAInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span At A Utm H Frame Horizontal Span At A Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_at_b_structure_2":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span At B Structure 2","description":"Structure 2 (two outside kneebraces only), Eq. 13-19a — a genuinely different equation\nfrom Structure 4's `/h_frame/horizontal_span_at_b`, not a reparameterization.","operationId":"post_h_frame_horizontal_span_at_b_structure_2_utm_h_frame_horizontal_span_at_b_structure_2_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanAtBStructure2Input"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span At B Structure 2 Utm H Frame Horizontal Span At B Structure 2 Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_at_e_structure_2":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span At E Structure 2","description":"Structure 2, Eq. 13-19b.","operationId":"post_h_frame_horizontal_span_at_e_structure_2_utm_h_frame_horizontal_span_at_e_structure_2_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanAtEStructure2Input"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span At E Structure 2 Utm H Frame Horizontal Span At E Structure 2 Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_at_e_structure_3":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span At E Structure 3","description":"Structure 3, Eq. 13-20 — the only equation Structure 3 doesn't share unchanged with\nStructure 2 (HSD/HSA/crossbrace/uplift/bearing are all \"same as structure #2\").","operationId":"post_h_frame_horizontal_span_at_e_structure_3_utm_h_frame_horizontal_span_at_e_structure_3_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanAtEStructure3Input"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span At E Structure 3 Utm H Frame Horizontal Span At E Structure 3 Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/horizontal_span_structure_1":{"post":{"tags":["utm"],"summary":"Post H Frame Horizontal Span Structure 1","description":"Structure 1 (no bracing at all), Eq. 13-16. Structure 1's vertical span (Eq. 13-18) is\nidentical to `/crossarm_max_vertical_span` — use that route directly.","operationId":"post_h_frame_horizontal_span_structure_1_utm_h_frame_horizontal_span_structure_1_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameHorizontalSpanStructure1Input"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Horizontal Span Structure 1 Utm H Frame Horizontal Span Structure 1 Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/h_frame/reaction_at_base_structure_1":{"post":{"tags":["utm"],"summary":"Post H Frame Reaction At Base Structure 1","description":"Structure 1, Eq. 13-17.","operationId":"post_h_frame_reaction_at_base_structure_1_utm_h_frame_reaction_at_base_structure_1_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFrameReactionAtBaseStructure1Input"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post H Frame Reaction At Base Structure 1 Utm H Frame Reaction At Base Structure 1 Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/row_width/single_line":{"post":{"tags":["utm"],"summary":"Post Row Width Single Line","operationId":"post_row_width_single_line_utm_row_width_single_line_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowWidthSingleLineInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post Row Width Single Line Utm Row Width Single Line Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/row_width/horizontal_clearance":{"post":{"tags":["utm"],"summary":"Post Row Width Horizontal Clearance","operationId":"post_row_width_horizontal_clearance_utm_row_width_horizontal_clearance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowWidthHorizontalClearanceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Post Row Width Horizontal Clearance Utm Row Width Horizontal Clearance Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/galloping/single_loop_ellipse":{"get":{"tags":["utm"],"summary":"Get Galloping Single Loop Ellipse","operationId":"get_galloping_single_loop_ellipse_utm_galloping_single_loop_ellipse_get","parameters":[{"name":"iced_conductor_sag_ft","in":"query","required":true,"schema":{"type":"number","title":"Iced Conductor Sag Ft"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Galloping Single Loop Ellipse Utm Galloping Single Loop Ellipse Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/galloping/double_loop_ellipse":{"get":{"tags":["utm"],"summary":"Get Galloping Double Loop Ellipse","operationId":"get_galloping_double_loop_ellipse_utm_galloping_double_loop_ellipse_get","parameters":[{"name":"span_ft","in":"query","required":true,"schema":{"type":"number","title":"Span Ft"}},{"name":"iced_conductor_sag_ft","in":"query","required":true,"schema":{"type":"number","title":"Iced Conductor Sag Ft"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Galloping Double Loop Ellipse Utm Galloping Double Loop Ellipse Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/lookup/pole_class_horizontal_load":{"get":{"tags":["utm"],"summary":"Get Lookup Pole Class Horizontal Load","operationId":"get_lookup_pole_class_horizontal_load_utm_lookup_pole_class_horizontal_load_get","parameters":[{"name":"pole_class","in":"query","required":true,"schema":{"type":"string","title":"Pole Class"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"integer","title":"Response Get Lookup Pole Class Horizontal Load Utm Lookup Pole Class Horizontal Load Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/lookup/crossarm_moment_capacity":{"get":{"tags":["utm"],"summary":"Get Lookup Crossarm Moment Capacity","operationId":"get_lookup_crossarm_moment_capacity_utm_lookup_crossarm_moment_capacity_get","parameters":[{"name":"crossarm_size","in":"query","required":true,"schema":{"type":"string","title":"Crossarm Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Lookup Crossarm Moment Capacity Utm Lookup Crossarm Moment Capacity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/lookup/conductor_ampacity":{"get":{"tags":["utm"],"summary":"Get Lookup Conductor Ampacity","operationId":"get_lookup_conductor_ampacity_utm_lookup_conductor_ampacity_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Lookup Conductor Ampacity Utm Lookup Conductor Ampacity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/lookup/groundline_moment_capacity":{"get":{"tags":["utm"],"summary":"Get Lookup Groundline Moment Capacity","operationId":"get_lookup_groundline_moment_capacity_utm_lookup_groundline_moment_capacity_get","parameters":[{"name":"species","in":"query","required":true,"schema":{"type":"string","title":"Species"}},{"name":"height_ft","in":"query","required":true,"schema":{"type":"integer","title":"Height Ft"}},{"name":"pole_class","in":"query","required":true,"schema":{"type":"string","title":"Pole Class"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"number","title":"Response Get Lookup Groundline Moment Capacity Utm Lookup Groundline Moment Capacity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/lookup/anchor_holding_capacity":{"get":{"tags":["utm"],"summary":"Get Lookup Anchor Holding Capacity","operationId":"get_lookup_anchor_holding_capacity_utm_lookup_anchor_holding_capacity_get","parameters":[{"name":"anchor_type","in":"query","required":true,"schema":{"type":"string","title":"Anchor Type"}},{"name":"designation","in":"query","required":true,"schema":{"type":"string","title":"Designation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"integer","title":"Response Get Lookup Anchor Holding Capacity Utm Lookup Anchor Holding Capacity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/utm/render_tower_scene":{"post":{"tags":["utm"],"summary":"Post Render Tower Scene","description":"Emit this tower as a real, typed PortableModel scene-rendering payload (geometry, not a\ncapacity/span/anchor calculation result) -- mcp/server.py's own render_tower_scene tool,\nadded here 2026-08-15 (matching usm-agent-harness's own render_substation_scene route,\nadded the same day for the identical reason: this result shape doesn't fit any of this\nfile's other routes' \"computed engineering value\" convention).\n\nReturns the PortableModel dict directly (not the MCP tool's json.dumps'd string) -- the\ncorrect REST shape, same reasoning as usm-agent-harness's route. Request body: {\"input\":\n{...}, \"shield_wires\": [...], \"insulators\": [...], \"attachment_hardware\": [...]} -- FastAPI\nembeds each Pydantic-model/list-of-model parameter under its own key when a route has more\nthan one such parameter, so this mirrors the MCP tool's own flat parameter list exactly.\n\nLazy import matches mcp/server.py's own render_tower_scene precedent: grid-model-forge-schema\nis a real base dependency (pyproject.toml), so this is defensive insurance, not the primary\ngate. Returns 503 if a deployment somehow lacks it; every other route is unaffected.","operationId":"post_render_tower_scene_utm_render_tower_scene_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_render_tower_scene_utm_render_tower_scene_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Render Tower Scene Utm Render Tower Scene Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/healthz":{"get":{"tags":["circuit"],"summary":"Health check","operationId":"healthz_circuit_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Circuit Healthz Get"}}}}}}},"/circuit/calculate_available_fault_current":{"post":{"tags":["circuit"],"summary":"Post Calculate Available Fault Current","operationId":"post_calculate_available_fault_current_circuit_calculate_available_fault_current_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_available_fault_current_circuit_calculate_available_fault_current_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FaultCurrentResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_cable_fault_withstand":{"post":{"tags":["circuit"],"summary":"Post Calculate Cable Fault Withstand","operationId":"post_calculate_cable_fault_withstand_circuit_calculate_cable_fault_withstand_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_cable_fault_withstand_circuit_calculate_cable_fault_withstand_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CableFaultWithstandResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_conductor_ampacity":{"post":{"tags":["circuit"],"summary":"Post Calculate Conductor Ampacity","operationId":"post_calculate_conductor_ampacity_circuit_calculate_conductor_ampacity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmpacityInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmpacityResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_conductor_voltage_drop":{"post":{"tags":["circuit"],"summary":"Post Calculate Conductor Voltage Drop","operationId":"post_calculate_conductor_voltage_drop_circuit_calculate_conductor_voltage_drop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_conductor_voltage_drop_circuit_calculate_conductor_voltage_drop_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoltageDropResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_line_constants":{"post":{"tags":["circuit"],"summary":"Post Calculate Line Constants","operationId":"post_calculate_line_constants_circuit_calculate_line_constants_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_line_constants_circuit_calculate_line_constants_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LineConstantsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_overcurrent_relay_trip_time":{"post":{"tags":["circuit"],"summary":"Post Calculate Overcurrent Relay Trip Time","operationId":"post_calculate_overcurrent_relay_trip_time_circuit_calculate_overcurrent_relay_trip_time_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_overcurrent_relay_trip_time_circuit_calculate_overcurrent_relay_trip_time_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OvercurrentTripTimeResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_path_impedance":{"post":{"tags":["circuit"],"summary":"Post Calculate Path Impedance","operationId":"post_calculate_path_impedance_circuit_calculate_path_impedance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_path_impedance_circuit_calculate_path_impedance_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PathImpedanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_transformer_hottest_spot":{"post":{"tags":["circuit"],"summary":"Post Calculate Transformer Hottest Spot","operationId":"post_calculate_transformer_hottest_spot_circuit_calculate_transformer_hottest_spot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_transformer_hottest_spot_circuit_calculate_transformer_hottest_spot_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HottestSpotResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_underground_cable_ampacity":{"post":{"tags":["circuit"],"summary":"Post Calculate Underground Cable Ampacity","operationId":"post_calculate_underground_cable_ampacity_circuit_calculate_underground_cable_ampacity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_underground_cable_ampacity_circuit_calculate_underground_cable_ampacity_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UndergroundCableAmpacityResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_grounding_grid_resistance":{"post":{"tags":["circuit"],"summary":"Post Calculate Grounding Grid Resistance","operationId":"post_calculate_grounding_grid_resistance_circuit_calculate_grounding_grid_resistance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_grounding_grid_resistance_circuit_calculate_grounding_grid_resistance_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GridResistanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_mesh_and_step_voltage":{"post":{"tags":["circuit"],"summary":"Post Calculate Mesh And Step Voltage","operationId":"post_calculate_mesh_and_step_voltage_circuit_calculate_mesh_and_step_voltage_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_mesh_and_step_voltage_circuit_calculate_mesh_and_step_voltage_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeshStepVoltageResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_ground_potential_rise":{"post":{"tags":["circuit"],"summary":"Post Calculate Ground Potential Rise","operationId":"post_calculate_ground_potential_rise_circuit_calculate_ground_potential_rise_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_ground_potential_rise_circuit_calculate_ground_potential_rise_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroundPotentialRiseResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_surface_layer_derating_factor":{"post":{"tags":["circuit"],"summary":"Post Calculate Surface Layer Derating Factor","operationId":"post_calculate_surface_layer_derating_factor_circuit_calculate_surface_layer_derating_factor_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_surface_layer_derating_factor_circuit_calculate_surface_layer_derating_factor_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurfaceLayerDeratingResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_tolerable_touch_step_voltage":{"post":{"tags":["circuit"],"summary":"Post Calculate Tolerable Touch Step Voltage","operationId":"post_calculate_tolerable_touch_step_voltage_circuit_calculate_tolerable_touch_step_voltage_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_tolerable_touch_step_voltage_circuit_calculate_tolerable_touch_step_voltage_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TolerableVoltageResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/fit_uniform_soil_model":{"post":{"tags":["circuit"],"summary":"Post Fit Uniform Soil Model","operationId":"post_fit_uniform_soil_model_circuit_fit_uniform_soil_model_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_fit_uniform_soil_model_circuit_fit_uniform_soil_model_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniformSoilModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/fit_two_layer_soil_model":{"post":{"tags":["circuit"],"summary":"Post Fit Two Layer Soil Model","operationId":"post_fit_two_layer_soil_model_circuit_fit_two_layer_soil_model_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_fit_two_layer_soil_model_circuit_fit_two_layer_soil_model_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwoLayerSoilModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/typical_soil_resistivity_from_category":{"post":{"tags":["circuit"],"summary":"Post Typical Soil Resistivity From Category","operationId":"post_typical_soil_resistivity_from_category_circuit_typical_soil_resistivity_from_category_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_typical_soil_resistivity_from_category_circuit_typical_soil_resistivity_from_category_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniformSoilModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/typical_soil_resistivity_from_remarks":{"post":{"tags":["circuit"],"summary":"Post Typical Soil Resistivity From Remarks","operationId":"post_typical_soil_resistivity_from_remarks_circuit_typical_soil_resistivity_from_remarks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_typical_soil_resistivity_from_remarks_circuit_typical_soil_resistivity_from_remarks_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UniformSoilModel"},{"type":"null"}],"title":"Response Post Typical Soil Resistivity From Remarks Circuit Typical Soil Resistivity From Remarks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/evaluate_motor_start_flicker":{"post":{"tags":["circuit"],"summary":"Post Evaluate Motor Start Flicker","operationId":"post_evaluate_motor_start_flicker_circuit_evaluate_motor_start_flicker_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotorStartInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotorStartFlickerResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/estimate_pst_from_step":{"post":{"tags":["circuit"],"summary":"Post Estimate Pst From Step","operationId":"post_estimate_pst_from_step_circuit_estimate_pst_from_step_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_estimate_pst_from_step_circuit_estimate_pst_from_step_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PstScreeningResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/aggregate_service_point_loads":{"post":{"tags":["circuit"],"summary":"Post Aggregate Service Point Loads","operationId":"post_aggregate_service_point_loads_circuit_aggregate_service_point_loads_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_aggregate_service_point_loads_circuit_aggregate_service_point_loads_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregatedPhaseLoads"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_phase_balance":{"post":{"tags":["circuit"],"summary":"Post Calculate Phase Balance","operationId":"post_calculate_phase_balance_circuit_calculate_phase_balance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_phase_balance_circuit_calculate_phase_balance_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhaseBalanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/analyze_phase_balance":{"post":{"tags":["circuit"],"summary":"Post Analyze Phase Balance","operationId":"post_analyze_phase_balance_circuit_analyze_phase_balance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_analyze_phase_balance_circuit_analyze_phase_balance_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhaseBalanceResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_induced_sheath_voltage_gradient":{"post":{"tags":["circuit"],"summary":"Post Calculate Induced Sheath Voltage Gradient","operationId":"post_calculate_induced_sheath_voltage_gradient_circuit_calculate_induced_sheath_voltage_gradient_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_induced_sheath_voltage_gradient_circuit_calculate_induced_sheath_voltage_gradient_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InducedSheathVoltageGradientResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_sheath_standing_voltage":{"post":{"tags":["circuit"],"summary":"Post Calculate Sheath Standing Voltage","operationId":"post_calculate_sheath_standing_voltage_circuit_calculate_sheath_standing_voltage_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_sheath_standing_voltage_circuit_calculate_sheath_standing_voltage_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SheathStandingVoltageResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_max_sheath_bonded_length":{"post":{"tags":["circuit"],"summary":"Post Calculate Max Sheath Bonded Length","operationId":"post_calculate_max_sheath_bonded_length_circuit_calculate_max_sheath_bonded_length_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_max_sheath_bonded_length_circuit_calculate_max_sheath_bonded_length_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaxSheathBondedLengthResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/circuit/calculate_sheath_bonding_loss_factor":{"post":{"tags":["circuit"],"summary":"Post Calculate Sheath Bonding Loss Factor","operationId":"post_calculate_sheath_bonding_loss_factor_circuit_calculate_sheath_bonding_loss_factor_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_post_calculate_sheath_bonding_loss_factor_circuit_calculate_sheath_bonding_loss_factor_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SheathBondingLossFactorResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_slope":{"post":{"tags":["ada","R302"],"summary":"Api Check Prowag Slope","description":"Check a sidewalk, landing, ramp, or curb ramp segment's cross slope, running slope,\nand (for sidewalk/landing only) continuous clear width against PROWAG R302.2/R302.4/\nR302.5 (R304.2 slope-only for ramp/curb_ramp segment types — prefer check_prowag_curb_ramp\nfor full curb-ramp coverage). Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_slope_ada_check_prowag_slope_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSidewalkSlopeInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_curb_ramp":{"post":{"tags":["ada","R304"],"summary":"Api Check Prowag Curb Ramp","description":"Check a perpendicular curb ramp, parallel curb ramp, or blended transition against\nPROWAG R304: running/cross slope (incl. the R304.2.1/R304.3.1 length exception), clear\nwidth, landing dimensions, the perpendicular-only clear area and flare slope, and the\ngutter grade-break requirement. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_curb_ramp_ada_check_prowag_curb_ramp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckCurbRampInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_detectable_warning":{"post":{"tags":["ada","R305"],"summary":"Api Check Prowag Detectable Warning","description":"Check a detectable warning surface (truncated domes) against PROWAG R305: dome base/\ntop diameter, height, spacing, visual contrast attestation, surface extent/width, and\nper-context placement (perpendicular curb ramp incl. the R305.2.1 Scenario A/B/C split,\nparallel curb ramp, blended transition, refuge island, or rail crossing). Draft v1, not\nyet SME-reviewed.","operationId":"api_check_prowag_detectable_warning_ada_check_prowag_detectable_warning_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDetectableWarningInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_transit_stop":{"post":{"tags":["ada","R309"],"summary":"Api Check Prowag Transit Stop","description":"Check a boarding/alighting area or boarding platform (and its transit shelter, if any)\nagainst PROWAG R309: perpendicular/parallel slope, boarding-area dimensions, alteration-\nconnection requirements, and shelter connection/environmental controls/clear space\n(clear space delegated to check_prowag_clear_space via attestation). REQUIRES\nis_new_construction_or_alteration — the only PROWAG chapter USDOT has adopted as legally\nenforceable so far, and only for new construction/alterations, so this field directly\ndrives whether regulatory_status is 'dot-transit-adopted' or the weaker\n'best-practice-consent-decree-standard'. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_transit_stop_ada_check_prowag_transit_stop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckTransitStopInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_parking_access_aisle":{"post":{"tags":["ada","R310"],"summary":"Api Check Prowag Parking Access Aisle","description":"Check a parallel, perpendicular, or angled on-street accessible parking space against\nPROWAG R310: space dimensions, access aisle width/length/marking/level/encroachment,\ntraveled-way encroachment and clearance-zone obstruction, surface level changes (zero-\ntolerance, not a slope percentage — R310 has no numeric slope requirement of its own), and\nidentification sign height. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_parking_access_aisle_ada_check_prowag_parking_access_aisle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckParkingAccessAisleInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_passenger_loading_zone":{"post":{"tags":["ada","R311"],"summary":"Api Check Prowag Passenger Loading Zone","description":"Check a passenger loading zone (vehicle pull-up space and its access aisle) against\nPROWAG R311: pull-up space dimensions, access aisle width/length/level/encroachment,\nadjacent clearance-zone obstruction, access aisle marking, and surface level changes\n(zero-tolerance — R311 has no numeric slope requirement of its own). Draft v1, not yet\nSME-reviewed.","operationId":"api_check_prowag_passenger_loading_zone_ada_check_prowag_passenger_loading_zone_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPassengerLoadingZoneInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_alternate_access_route":{"post":{"tags":["ada","R303"],"summary":"Api Check Prowag Alternate Access Route","description":"Check a temporary alternate pedestrian access route (a construction/alteration work-\nzone detour) against PROWAG R303: continuous clear width (incl. the R303.4 Exception),\nsignage/non-visual wayfinding presence, surface compliance, curb ramp/blended transition\npresence, detectable edging height range, and pedestrian pushbutton/passive-detection\npresence. Most requirements are presence/delegation attestations — R304/R307 geometry is\nnot re-verified here. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_alternate_access_route_ada_check_prowag_alternate_access_route_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckAlternateAccessRouteInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_operable_parts":{"post":{"tags":["ada","R403"],"summary":"Api Check Prowag Operable Parts","description":"Check an operable part (e.g. a parking pay station or pedestrian pushbutton) against\nPROWAG R403: reach height (48\" max / 15\" min, R406.2), obstructed-reach rules (R406.3 —\nno forward-reach obstruction at all, only a shallow 10\"-deep/34\"-high side-reach\nobstruction, both stricter than the 2010 ADA Standards), clear space compliance (delegated\nto check_prowag_clear_space via attestation), and operation requirements (one-hand\noperable, no tight grasping/pinching/wrist-twisting, 5 lb max activation force). Domain-\nagnostic — serves both R310.6 parking pay stations and R307 pushbutton coverage. Draft v1,\nnot yet SME-reviewed.","operationId":"api_check_prowag_operable_parts_ada_check_prowag_operable_parts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckOperablePartsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_crosswalk":{"post":{"tags":["ada","R306"],"summary":"Api Check Prowag Crosswalk","description":"Check a marked crosswalk against PROWAG R306: pedestrian signal phase timing (3.5 ft/s\nmax assumed walking speed, 7 s walk-interval floor, refuge-island push-button/passive-\ndetection requirement), accessible walk indication duration matching the walk interval,\nand roundabout/channelized-turn-lane edge detection and crosswalk treatments. R306 has no\nslope content of its own. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_crosswalk_ada_check_prowag_crosswalk_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckCrosswalkInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_pedestrian_pushbutton":{"post":{"tags":["ada","R307"],"summary":"Api Check Prowag Pedestrian Pushbutton","description":"Check a pedestrian push button / passive pedestrian detection device against PROWAG\nR307: location, separation between two buttons on the same corner (with an alterations/\ntechnically-infeasible EXCEPTION), orientation, locator tone, and tactile arrow. R307.1\ndelegates operable-parts geometry to check_prowag_operable_parts; R307.6/R307.7's audible/\nvibrotactile content delegates to check_prowag_signal_indication — both checked here only\nas presence attestations. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_pedestrian_pushbutton_ada_check_prowag_pedestrian_pushbutton_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPedestrianPushbuttonInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_signal_indication":{"post":{"tags":["ada","R308"],"summary":"Api Check Prowag Signal Indication","description":"Check an accessible pedestrian signal's audible/vibrotactile walk indication content\nagainst PROWAG R308: presence (both audible AND vibrotactile required together), walk-\ninterval-only scope, audible behavior, audible indication type (a percussive tone, or a\nspeech walk message in qualifying alterations), and volume (louder-than-ambient floor plus\na 5 dBA cap with an audible-beaconing EXCEPTION, and a separate exception-free 100 dBA\nceiling). Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_signal_indication_ada_check_prowag_signal_indication_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSignalIndicationInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_protruding_objects":{"post":{"tags":["ada","R402"],"summary":"Api Check Prowag Protruding Objects","description":"Check a protruding object (or a vertical-clearance condition) against PROWAG R402: the\n27\"-80\" protrusion zone (4\" max horizontal protrusion, 4.5\" for an attested handrail), a\nmaterially different rule for objects mounted between two posts with a >12\" gap, 80\" min\nvertical clearance with a required guard/barrier below it, and a rule that protruding\nobjects may not reduce a pedestrian access route's required clear width. PROWAG R402.3.1\nis stricter than its 2010 ADA Standards analog — single-post-mounted objects get no\nspecial allowance. Domain-agnostic — resolves check_prowag_transit_stop's R309.2.4 debt.\nDraft v1, not yet SME-reviewed.","operationId":"api_check_prowag_protruding_objects_ada_check_prowag_protruding_objects_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckProtrudingObjectsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_handrail":{"post":{"tags":["ada","R409"],"summary":"Api Check Prowag Handrail","description":"Check a handrail at a ramp, stair, or voluntarily-provided pedestrian circulation path\nagainst PROWAG R409: both-sides/continuity, height (34\"-38\"), clearance (1.5\" min),\ngripping surface (no top/side obstruction at all, 20% max bottom obstruction, stricter\nthan the 2010 ADA Standards analog), cross section, surface finish, fitting rotation, and\nextensions. Domain-agnostic — check_prowag_ramp and check_prowag_stairs both delegate to\nit rather than duplicating its geometry. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_handrail_ada_check_prowag_handrail_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckHandrailInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_sign_characters":{"post":{"tags":["ada","R410"],"summary":"Api Check Prowag Sign Characters","description":"Check visual (non-tactile) characters on a sign against PROWAG R410: non-glare finish\nand light/dark contrast, permitted case, conventional style, character proportions, a\nmounting-height/viewing-distance driven minimum character height (Table R410.6's three\nbands), stroke thickness, character/line spacing, and a 40\" minimum mounting height.\nCross-verified row-for-row against the 2010 ADA Standards' identical Table 703.5.5 with no\ndiscrepancy found. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_sign_characters_ada_check_prowag_sign_characters_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSignCharactersInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_ramp":{"post":{"tags":["ada","R407"],"summary":"Api Check Prowag Ramp","description":"Check a general (non-curb-ramp) pedestrian ramp run or landing against PROWAG R407:\nrunning slope (1:12 max), cross slope (1:48 max), clear width, rise (30\" max per run),\nlandings, a handrail requirement where rise exceeds 6\" (delegated to check_prowag_handrail),\nand edge protection. PROWAG drops two 2010 ADA Standards allowances (no existing-conditions\nsteeper-slope exception; a narrower edge-protection exception set). Draft v1, not yet\nSME-reviewed.","operationId":"api_check_prowag_ramp_ada_check_prowag_ramp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckRampInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_stairs":{"post":{"tags":["ada","R408"],"summary":"Api Check Prowag Stairs","description":"Check a stair flight against PROWAG R408: riser height (4\"-7\"), tread depth (11\" min),\nan open-risers prohibition, tread surface, nosings, a mandatory visual contrast stripe\n(a binding PROWAG requirement with no 2010 ADA Standards analog), and a handrail\nrequirement (delegated to check_prowag_handrail). Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_stairs_ada_check_prowag_stairs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckStairsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_clear_space":{"post":{"tags":["ada","R404"],"summary":"Api Check Prowag Clear Space","description":"Check a clear floor or ground space against PROWAG R404 (Clear Spaces) and R405 (Knee\nand Toe Clearance): slope (1:48 max, with an EXCEPTION for a steeper adjacent-pedestrian-\naccess-route grade), size (30\"x48\" min), a curb-ramp-run/flare site-layout prohibition,\napproach adjacency, maneuvering clearance where confined on three sides, and — only where\na clear space actually relies on it — knee and toe clearance. Domain-agnostic —\ncheck_prowag_operable_parts and check_prowag_transit_stop both delegate to it via\nattestation. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_clear_space_ada_check_prowag_clear_space_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckClearSpaceInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_passenger_loading_zone_scoping":{"post":{"tags":["ada","R212"],"summary":"Api Check Prowag Passenger Loading Zone Scoping","description":"Check whether the number of accessible passenger loading zones provided along a run of\nloading zone space meets PROWAG R212.1: one accessible PLZ per continuous 100 feet, or\nfraction thereof. A Chapter 2 scoping (\"how many are required\") check, distinct from\ncheck_prowag_passenger_loading_zone's single-PLZ geometry check. Draft v1, not yet\nSME-reviewed.","operationId":"api_check_prowag_passenger_loading_zone_scoping_ada_check_prowag_passenger_loading_zone_scoping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPassengerLoadingZoneScopingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_on_street_parking_scoping":{"post":{"tags":["ada","R211"],"summary":"Api Check Prowag On Street Parking Scoping","description":"Check whether the number of accessible on-street parking spaces provided meets PROWAG\nR211.1's Table R211 minimum, given the total metered/designated supply (marked spaces\nand/or an unmarked length converted at 20 ft per space), with residential- and commercial/\nlaw-enforcement-exclusive spaces excluded. A Chapter 2 scoping check, distinct from\ncheck_prowag_parking_access_aisle's single-space geometry check. Table R211's \"201 and\nover\" band ships ceiling as a provisional rounding default — see VALIDATION.md. Draft v1,\nnot yet SME-reviewed.","operationId":"api_check_prowag_on_street_parking_scoping_ada_check_prowag_on_street_parking_scoping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckOnStreetParkingScopingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_street_furniture_scoping":{"post":{"tags":["ada","R209"],"summary":"Api Check Prowag Street Furniture Scoping","description":"Check whether the number of accessible portable toilet units (PROWAG R209.3.2) or\ntables (R209.4) provided at a single cluster/group meets the \"at least 5 percent, but no\nfewer than one\" minimum. Checks only the count ratio — the underlying unit geometry\ndefers to 36 CFR part 1191 Appendix D, not ingested by this harness; accessible_count_\nprovided is a caller attestation. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_street_furniture_scoping_ada_check_prowag_street_furniture_scoping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckStreetFurnitureScopingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_overpass_underpass_access":{"post":{"tags":["ada","R203"],"summary":"Api Check Prowag Overpass Underpass Access","description":"Check whether an overpass/underpass/bridge with an approach slope exceeding 1:20\n(5.0%) has an acceptable accessible means (ramp, elevator/LULA, or an alterations-only\nplatform lift) provided, per PROWAG R203.7. Does not check the ramp's own R407 geometry\nor elevator/LULA/platform-lift geometry (defers to un-ingested Appendix D). Draft v1, not\nyet SME-reviewed.","operationId":"api_check_prowag_overpass_underpass_access_ada_check_prowag_overpass_underpass_access_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckOverpassUnderpassAccessInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_sign_scoping":{"post":{"tags":["ada","R208"],"summary":"Api Check Prowag Sign Scoping","description":"Check whether a sign is within PROWAG R208.1's scope and, if so, whether it complies\nwith R410 (checked separately via check_prowag_sign_characters). Handles both R208.1\nexceptions (transit schedules/timetables/maps; pushbutton-mounted signs). Draft v1, not\nyet SME-reviewed.","operationId":"api_check_prowag_sign_scoping_ada_check_prowag_sign_scoping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSignScopingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_dws_scoping":{"post":{"tags":["ada","R205"],"summary":"Api Check Prowag Dws Scoping","description":"Check whether a detectable warning surface is required at a given location per PROWAG\nR205.1-R205.7 (six location types, each with its own applicability rule and exception),\nand whether one is provided. Directly unblocks check_prowag_detectable_warning's\npreviously documented R305.2.6/.2.7/.2.8 gap (boarding platforms, sidewalk/street-level\nrail boarding, driveways) — answers \"is a DWS required here,\" never re-checking DWS\ngeometry itself. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_dws_scoping_ada_check_prowag_dws_scoping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDwsScopingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_pedestrian_signal_scoping":{"post":{"tags":["ada","R206"],"summary":"Api Check Prowag Pedestrian Signal Scoping","description":"Check whether a pedestrian signal head (traffic signal/hybrid beacon) or a pedestrian\nactivated warning device has the required pushbutton-or-passive-detection composition per\nPROWAG R206.2/R206.3 — a routing/precondition check feeding check_prowag_pedestrian_\npushbutton and check_prowag_signal_indication, never re-verifying their own geometry.\nDraft v1, not yet SME-reviewed.","operationId":"api_check_prowag_pedestrian_signal_scoping_ada_check_prowag_pedestrian_signal_scoping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPedestrianSignalScopingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_curb_ramp_placement":{"post":{"tags":["ada","R203"],"summary":"Api Check Prowag Curb Ramp Placement","description":"Check how many curb ramps/blended transitions are required, and where, given a\ncrossing context, per PROWAG R203.6 (intersection corners, midblock/roundabout crossings,\nparallel/perpendicular/angled parking connections, altered crosswalks). Distinct from\ncheck_prowag_curb_ramp (R304), which checks one curb ramp's own geometry. Draft v1, not\nyet SME-reviewed.","operationId":"api_check_prowag_curb_ramp_placement_ada_check_prowag_curb_ramp_placement_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckCurbRampPlacementInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ada/check_prowag_bench_scoping":{"post":{"tags":["ada","R209"],"summary":"Api Check Prowag Bench Scoping","description":"Check bench clear-space requirements per PROWAG R209.6.1 (benches at transit stops/\nshelters, delegated to check_prowag_clear_space via attestation unless within a shelter)\nor R209.6.2 (benches not at transit stops, a 50%-floor-1 count ratio). Always resolves\nbest-practice-consent-decree-standard regardless of context — a caller wanting the correct\ndot-transit-adopted status at a transit stop should compose this result with\ncheck_prowag_transit_stop's own. Draft v1, not yet SME-reviewed.","operationId":"api_check_prowag_bench_scoping_ada_check_prowag_bench_scoping_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckBenchScopingInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/prowag_harness__functions__result__ComplianceCheckResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ocalc/parse_pplx":{"post":{"tags":["ocalc","pplx"],"summary":"Api Parse Pplx","description":"Parse a single-pole O-Calc PPLX XML document into an OcalcPoleModel + any\n<Capacity><Stored> data the file already carries.","operationId":"api_parse_pplx_ocalc_parse_pplx_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParsePplxRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParsePplxResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ocalc/parse_pplld":{"post":{"tags":["ocalc","line_design"],"summary":"Api Parse Pplld","description":"Parse a base64-encoded O-Calc Pro Line Design (.pplld) archive into every pole it\ncontains, plus line-level metadata and resolved cross-pole links.","operationId":"api_parse_pplld_ocalc_parse_pplld_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParsePplldRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParsePplldResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ocalc/summarize_capacity":{"post":{"tags":["ocalc","capacity"],"summary":"Api Summarize Capacity","description":"Rename/wrap a parsed <Capacity><Stored> block's 11 fields with provenance --\nO-Calc's own desktop app already computed these, this does not re-derive them.","operationId":"api_summarize_capacity_ocalc_summarize_capacity_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SummarizeCapacityRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapacitySummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ocalc/classify_pole_adequacy":{"post":{"tags":["ocalc","capacity"],"summary":"Api Classify Pole Adequacy","description":"Threshold-classify a pole's O-Calc-computed capacity data (>100% utilization =\ncritical, >90% = warning, >75% = caution; factor of safety <2.0 = critical, <2.5 =\nwarning). Returns status=\"unknown\" when `stored` is None (file never calculated).","operationId":"api_classify_pole_adequacy_ocalc_classify_pole_adequacy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyPoleAdequacyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdequacyResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ocalc/derive_attachment_summary":{"post":{"tags":["ocalc","capacity"],"summary":"Api Derive Attachment Summary","description":"Count crossarms/insulators/power-equipment off a parsed OcalcPoleModel -- the\n`attachments` input classify_pole_adequacy needs.","operationId":"api_derive_attachment_summary_ocalc_derive_attachment_summary_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeriveAttachmentSummaryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachmentSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ocalc/generate_pplx":{"post":{"tags":["ocalc","pplx"],"summary":"Api Generate Pplx","description":"Generate an O-Calc single-pole PPLX XML document from an OcalcPoleModel. `utility_id`\nselects the per-utility component catalog (OSMOSE/PGE/CPAU/LADWP/SDGE).","operationId":"api_generate_pplx_ocalc_generate_pplx_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePplxRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePplxResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ocalc/generate_pplld":{"post":{"tags":["ocalc","line_design"],"summary":"Api Generate Pplld","description":"Generate a base64-encoded O-Calc Pro Line Design (.pplld) archive from multiple\npoles. Raises 422 if any pole carries span_guys (pole-to-pole span-guy write-back isn't\nimplemented -- see generate_pplld.py's module docstring).","operationId":"api_generate_pplld_ocalc_generate_pplld_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePplldRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratePplldResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/spida/parse_spida":{"post":{"tags":["spida","spida"],"summary":"Api Parse Spida","description":"Parse a SPIDAcalc project JSON (or raw structure dict) into one or more\nSpidaPoleModels. Multi-pole projects (more than one location) parse every location.","operationId":"api_parse_spida_spida_parse_spida_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseSpidaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseSpidaResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/spida/parse_spida_file":{"post":{"tags":["spida","spida"],"summary":"Api Parse Spida File","description":"Parse an uploaded `.spida` project file (or plain `.json`). SPIDAcalc's native export\nwraps the JSON inside a ZIP archive -- unwrapped here before parsing.","operationId":"api_parse_spida_file_spida_parse_spida_file_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_api_parse_spida_file_spida_parse_spida_file_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseSpidaResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/spida/generate_spida":{"post":{"tags":["spida","spida"],"summary":"Api Generate Spida","description":"Generate a SPIDAcalc project JSON (single location) from a SpidaPoleModel.","operationId":"api_generate_spida_spida_generate_spida_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateSpidaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateSpidaResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/spida/generate_spida_multi":{"post":{"tags":["spida","spida"],"summary":"Api Generate Spida Multi","description":"Generate a multi-location SPIDAcalc project JSON from an ordered list of\nSpidaPoleModels, stitching adjacent locations that carry real lat/lon.","operationId":"api_generate_spida_multi_spida_generate_spida_multi_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateSpidaMultiRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateSpidaResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pls/parse_pls":{"post":{"tags":["pls","pls"],"summary":"Api Parse Pls","description":"Parse a PLS-POLE `.pol` file (and optional paired `.loa`) into a PlsPoleModel.\n`.pol` is genuinely single-pole -- always returns exactly one pole.","operationId":"api_parse_pls_pls_parse_pls_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParsePlsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParsePlsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pls/parse_pls_file":{"post":{"tags":["pls","pls"],"summary":"Api Parse Pls File","description":"Parse an uploaded `.pol` file (and optional paired `.loa` upload) into a\nPlsPoleModel.","operationId":"api_parse_pls_file_pls_parse_pls_file_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_api_parse_pls_file_pls_parse_pls_file_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParsePlsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/parse_talon_structure":{"post":{"tags":["field-capture","ingestion"],"summary":"Api Parse Talon Structure","description":"Parse a raw Talon drone-capture `structure` JSON object into a ClassificationPoleModel.","operationId":"api_parse_talon_structure_field_capture_parse_talon_structure_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseTalonStructureRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseTalonStructureResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/classify_circuits":{"post":{"tags":["field-capture","circuit"],"summary":"Api Classify Circuits","description":"Classify every attachment's circuit class and derive replacement-construction/\njoint-use implications.","operationId":"api_classify_circuits_field_capture_classify_circuits_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyCircuitsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyCircuitsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/enrich_pole_for_replacement_planning":{"post":{"tags":["field-capture","circuit"],"summary":"Api Enrich Pole For Replacement Planning","description":"Classify a pole's circuits for replacement-planning consumers, reusing an\nalready-attached classification unless force_refresh is set.","operationId":"api_enrich_pole_for_replacement_planning_field_capture_enrich_pole_for_replacement_planning_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichPoleForReplacementPlanningRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyCircuitsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/enrich_replacement_pair_for_planning":{"post":{"tags":["field-capture","circuit"],"summary":"Api Enrich Replacement Pair For Planning","description":"Classify both sides of an existing/installation pole pair for replacement planning.","operationId":"api_enrich_replacement_pair_for_planning_field_capture_enrich_replacement_pair_for_planning_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichReplacementPairForPlanningRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplacementPlanningPairResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/build_crossarm_inputs":{"post":{"tags":["field-capture","framing"],"summary":"Api Build Crossarm Inputs","description":"Translate a pole model's crossarm/PMI hierarchy into the framing classifier's input\ncontract.","operationId":"api_build_crossarm_inputs_field_capture_build_crossarm_inputs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildCrossarmInputsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CrossarmValidationInput"},"type":"array","title":"Response Api Build Crossarm Inputs Field Capture Build Crossarm Inputs Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/classify_crossarm_framing":{"post":{"tags":["field-capture","framing"],"summary":"Api Classify Crossarm Framing","description":"Classify each crossarm's framing (Tangent/Deadend/Double Deadend/Slack Span) plus\nspan-rotation/tension/insulator-anomaly/guying-placement checks.","operationId":"api_classify_crossarm_framing_field_capture_classify_crossarm_framing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyCrossarmFramingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Api Classify Crossarm Framing Field Capture Classify Crossarm Framing Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/detect_framing_faults":{"post":{"tags":["field-capture","framing"],"summary":"Api Detect Framing Faults","description":"Scan classified crossarms for pin-insulator/single-sided-span framing faults.","operationId":"api_detect_framing_faults_field_capture_detect_framing_faults_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetectFramingFaultsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FramingFault"},"type":"array","title":"Response Api Detect Framing Faults Field Capture Detect Framing Faults Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/validate_guying":{"post":{"tags":["field-capture","framing"],"summary":"Api Validate Guying","description":"Height-proximity check on direction-matched guys + corner-split flag on tight\ndouble-deadend angles.","operationId":"api_validate_guying_field_capture_validate_guying_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateGuyingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateGuyingResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/field-capture/classify_pole_framing":{"post":{"tags":["field-capture","framing"],"summary":"Api Classify Pole Framing","description":"Composed: build_crossarm_inputs -> classify_crossarm_framing -> detect_framing_faults\n+ validate_guying.","operationId":"api_classify_pole_framing_field_capture_classify_pole_framing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyPoleFramingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyPoleFramingResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/siting/utility-profiles":{"get":{"tags":["siting"],"summary":"Get Utility Profiles","description":"List every persisted utility profile — feeds a utility picker UI.\n\nLightweight summaries only (utility_id/states/layer_weights), not full\nUtilityProfile objects — voltage_profiles/layer_keys/etc. aren't needed\njust to populate a dropdown.","operationId":"get_utility_profiles_siting_utility_profiles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Utility Profiles Siting Utility Profiles Get"}}}}}}},"/siting/utility-profiles/{utility_id}":{"put":{"tags":["siting"],"summary":"Upsert Utility Profile","description":"Create or fully replace a utility's persisted siting profile.\n\nUnknown voltage_profile_names are silently dropped (not rejected) since\nthis is also how `utility_profile_store.load_utility_profile` degrades\nan existing doc if a registry name is ever renamed — the two paths\nshould treat that the same way rather than one being stricter.","operationId":"upsert_utility_profile_siting_utility_profiles__utility_id__put","parameters":[{"name":"utility_id","in":"path","required":true,"schema":{"type":"string","title":"Utility Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UtilityProfileUpsertRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Upsert Utility Profile Siting Utility Profiles  Utility Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/siting/corridors":{"post":{"tags":["siting"],"summary":"Generate Corridors","description":"Generate the alternative-corridor band for a utility/voltage profile + endpoints.","operationId":"generate_corridors_siting_corridors_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateCorridorsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Generate Corridors Siting Corridors Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/siting/routes":{"post":{"tags":["siting"],"summary":"Generate Routes","description":"Generate the least-cost route alternative within the corridor, plus its requirements summary.","operationId":"generate_routes_siting_routes_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateCorridorsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Generate Routes Siting Routes Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/siting/retrain":{"post":{"tags":["siting"],"summary":"Retrain Weight","description":"Re-weight one layer and regenerate the route, as a pure what-if —\nthe reweighted profile is never persisted, so exploring \"what if\npermitting risk mattered twice as much here\" never overwrites the\nutility's real AHP-calibrated baseline.\n\nv1 simplification: this re-fetches every layer fresh from live sources\non every call rather than reusing the previous call's already-fetched\nlayer data — there is no cross-request cache for this API to hand it.\nFunctionally correct, just not the fast path a real interactive \"drag\na slider and re-render\" UI would want; that needs a real\nrequest-scoped cache (e.g. keyed by a prior `/corridors`/`/routes`\nresponse's route/corridor id), not just this reweighting step. Works\nwith either an inline `profile` (fully stateless) or a Firestore-saved\n`utility_id`; either way, ONLY the reweighted, in-memory copy below is\never used, never persisted.","operationId":"retrain_weight_siting_retrain_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrainWeightRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Retrain Weight Siting Retrain Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/me":{"get":{"tags":["account"],"summary":"Get Account","operationId":"get_account_account_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountStatus"}}}}}}},"/account/link-key":{"post":{"tags":["account"],"summary":"Link Key","operationId":"link_key_account_link_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AbnormalOperatingPerformanceCategory":{"type":"string","enum":["category_i","category_ii","category_iii"],"title":"AbnormalOperatingPerformanceCategory","description":"IEEE 1547-2018 Clause 6's DER Category (I/II/III) — added per `ROADMAP.md` item 5, only\nonce `check_der_rocof_ride_through` actually needed it (per `CLAUDE.md` rule 3, don't grow\nthe schema speculatively). The Authority Governing Interconnection Requirements (AGIR — a\nstate PUC or similar) assigns which category a given DER type/installation must meet; this\nrepo does not model that assignment decision, only the category as a caller-supplied input.\nSee `standards/interconnection/ieee_1547_2018_clause_6_abnormal_conditions.md` for each\ncategory's regulatory foundation (Category I: German grid code; Category II: NERC PRC-024;\nCategory III: California Rule 21 / Hawaii Rule 14H)."},"AccessibleMeansType":{"type":"string","enum":["ramp","elevator_or_lula","platform_lift","none"],"title":"AccessibleMeansType"},"AccountStatus":{"properties":{"uid":{"type":"string","title":"Uid"},"email":{"type":"string","title":"Email"},"has_linked_key":{"type":"boolean","title":"Has Linked Key"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"}},"type":"object","required":["uid","email","has_linked_key"],"title":"AccountStatus"},"ActivationMethod":{"type":"string","enum":["pushbutton","passive_detection_or_pretimed"],"title":"ActivationMethod"},"AdequacyResult":{"properties":{"status":{"type":"string","title":"Status"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"critical_issues":{"items":{"type":"string"},"type":"array","title":"Critical Issues"},"recommendations":{"items":{"type":"string"},"type":"array","title":"Recommendations"},"detailed_checks":{"additionalProperties":{"$ref":"#/components/schemas/DetailedCheck"},"type":"object","title":"Detailed Checks"},"provenance":{"$ref":"#/components/schemas/ocalc_harness__functions__provenance__Provenance"}},"type":"object","required":["status","provenance"],"title":"AdequacyResult"},"AggregateRackHeatLoadRequest":{"properties":{"racks":{"items":{"$ref":"#/components/schemas/RackThermalLoad"},"type":"array","title":"Racks"}},"type":"object","required":["racks"],"title":"AggregateRackHeatLoadRequest"},"AggregatedPhaseLoads":{"properties":{"phase_loads_kva":{"additionalProperties":{"type":"number"},"type":"object","title":"Phase Loads Kva"},"network_kind":{"type":"string","enum":["three_phase","split_phase","mixed","unknown"],"title":"Network Kind"},"services_with_unknown_phase":{"type":"integer","title":"Services With Unknown Phase"}},"type":"object","required":["phase_loads_kva","network_kind","services_with_unknown_phase"],"title":"AggregatedPhaseLoads"},"AmpacityInput":{"properties":{"conductor":{"$ref":"#/components/schemas/ConductorThermalProps"},"environment":{"$ref":"#/components/schemas/EnvironmentalConditions"},"max_conductor_temp_c":{"type":"number","title":"Max Conductor Temp C"}},"type":"object","required":["conductor","environment","max_conductor_temp_c"],"title":"AmpacityInput"},"AmpacityResult":{"properties":{"ampacity_amps":{"type":"number","title":"Ampacity Amps"},"q_convection_w_per_ft":{"type":"number","title":"Q Convection W Per Ft"},"q_radiation_w_per_ft":{"type":"number","title":"Q Radiation W Per Ft"},"q_solar_w_per_ft":{"type":"number","title":"Q Solar W Per Ft"},"resistance_ohm_per_ft_at_tc":{"type":"number","title":"Resistance Ohm Per Ft At Tc"},"convection_model_used":{"type":"string","enum":["natural","forced","max_of_both"],"title":"Convection Model Used"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["ampacity_amps","q_convection_w_per_ft","q_radiation_w_per_ft","q_solar_w_per_ft","resistance_ohm_per_ft_at_tc","convection_model_used","provenance"],"title":"AmpacityResult"},"Anchor":{"properties":{"anchor_id":{"type":"string","title":"Anchor Id"},"distance":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"guy_ids":{"items":{"type":"string"},"type":"array","title":"Guy Ids"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["anchor_id"],"title":"Anchor"},"AnchorHoldingCapacityRequest":{"properties":{"anchor_class":{"type":"string","title":"Anchor Class"},"soil_class":{"type":"string","title":"Soil Class"},"guy_tension_lb":{"type":"number","title":"Guy Tension Lb"},"source_ref":{"type":"string","title":"Source Ref"},"guy_lead_angle_deg":{"type":"number","title":"Guy Lead Angle Deg","default":45.0},"bearing_capacity_factor":{"type":"number","title":"Bearing Capacity Factor","default":8.0},"strength_factor":{"type":"number","title":"Strength Factor","default":0.85},"soil_bearing_lb_per_sqft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Soil Bearing Lb Per Sqft"}},"type":"object","required":["anchor_class","soil_class","guy_tension_lb","source_ref"],"title":"AnchorHoldingCapacityRequest"},"AnchorHoldingCapacityResult":{"properties":{"anchor_class":{"type":"string","title":"Anchor Class"},"soil_class":{"type":"string","title":"Soil Class"},"plate_area_sqft":{"type":"number","title":"Plate Area Sqft"},"presumptive_bearing_lb_per_sqft":{"type":"number","title":"Presumptive Bearing Lb Per Sqft"},"ultimate_capacity_lb":{"type":"number","title":"Ultimate Capacity Lb"},"allowable_capacity_lb":{"type":"number","title":"Allowable Capacity Lb"},"applied_load_lb":{"type":"number","title":"Applied Load Lb"},"percent_used":{"type":"number","title":"Percent Used"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["anchor_class","soil_class","plate_area_sqft","presumptive_bearing_lb_per_sqft","ultimate_capacity_lb","allowable_capacity_lb","applied_load_lb","percent_used","provenance"],"title":"AnchorHoldingCapacityResult"},"ApproachType":{"type":"string","enum":["forward","side"],"title":"ApproachType"},"Attachment":{"properties":{"attachment_id":{"type":"string","title":"Attachment Id"},"attachment_type":{"type":"string","title":"Attachment Type"},"attachment_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voltage V"},"related_attachment_ids":{"items":{"type":"string"},"type":"array","title":"Related Attachment Ids"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["attachment_id","attachment_type"],"title":"Attachment"},"AttachmentClassification":{"properties":{"attachment_id":{"type":"string","title":"Attachment Id"},"circuit_class":{"type":"string","enum":["primary","secondary","comm","guy","anchor","equipment","unknown"],"title":"Circuit Class"},"voltage_v":{"type":"number","title":"Voltage V"},"reason":{"type":"string","title":"Reason"},"is_service_drop":{"type":"boolean","title":"Is Service Drop","default":false},"is_third_party_communications":{"type":"boolean","title":"Is Third Party Communications","default":false},"transfer_relevant":{"type":"boolean","title":"Transfer Relevant","default":true}},"type":"object","required":["attachment_id","circuit_class","voltage_v","reason"],"title":"AttachmentClassification"},"AttachmentHardware":{"properties":{"node_id":{"type":"string","title":"Node Id"},"provenance":{"anyOf":[{"$ref":"#/components/schemas/utm_agent_harness__ontology__provenance__Provenance"},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"structure_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Structure Id"},"hardware_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hardware Type"},"side":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Side"},"attachment_height_m":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Attachment Height M"},"arm_length_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Arm Length M"}},"additionalProperties":true,"type":"object","required":["node_id"],"title":"AttachmentHardware","description":"Crossarm / davit-arm / bracket — the hardware connecting a structure body to an insulator.\nSee module docstring for why this is one type with a free-text `hardware_type`, not a separate\n`CrossArm` class per structure type.\n\n`arm_length_m` added 2026-07-28 (Part XC) — the same \"add a real missing field to an existing\nnode\" gap-close `ShieldWire.attachment_height_m`/`span_direction_deg`/`span_length_m` (Part\nLXXXVI) already established for this exact situation: `grid-model-forge` grew a real, cited\n`grid_model_forge_schema.domains.attachment_hardware`/`mesh_library/transmission/\nattachment_hardware.ts` (RUS Bulletin 1728F-810 Drawings TH-1/TU-1/TG-18/TG-28), but this node\nhad no field to carry a real per-structure arm length to it. No `voltage_class_kv` field was\nadded alongside it — `davit_arm`/`h_frame_crossarm`'s own real cited lengths are voltage-keyed,\nbut this node has never carried a voltage field for anything (matching `Insulator`'s own\nresolved override-only fork, Part LXXXIX): a caller supplies the real, already-resolved\nper-structure `arm_length_m` directly, the same way `Insulator.unit_count`/`string_length_m`\nare already-resolved values, not derived inside this schema."},"AttachmentSummary":{"properties":{"crossarm_count":{"type":"integer","title":"Crossarm Count","default":0},"total_insulators":{"type":"integer","title":"Total Insulators","default":0},"power_equipment_count":{"type":"integer","title":"Power Equipment Count","default":0}},"additionalProperties":true,"type":"object","title":"AttachmentSummary","description":"Counts `classify_pole_adequacy` reads alongside StoredCapacityData -- ported from\nOCalcAnalyzer.get_attachment_summary's top-level counters only (not its nested\n`attachment_details`, which no adequacy check reads)."},"AudibleIndicationType":{"type":"string","enum":["percussive_tone","speech_walk_message"],"title":"AudibleIndicationType"},"BandedRangeChartData":{"properties":{"value":{"type":"number","title":"Value"},"value_label":{"type":"string","title":"Value Label"},"unit":{"type":"string","title":"Unit"},"bands":{"items":{"$ref":"#/components/schemas/ChartBand"},"type":"array","title":"Bands"},"within_any_band":{"type":"boolean","title":"Within Any Band"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["value","value_label","unit","bands","within_any_band","provenance"],"title":"BandedRangeChartData"},"BenchContext":{"type":"string","enum":["at_transit_stop_or_shelter","not_at_transit_stop"],"title":"BenchContext"},"BlowoutProfileResult":{"properties":{"stations":{"items":{"$ref":"#/components/schemas/BlowoutStation"},"type":"array","title":"Stations"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["stations","provenance"],"title":"BlowoutProfileResult"},"BlowoutStation":{"properties":{"station_ft":{"type":"number","title":"Station Ft"},"lateral_ft":{"type":"number","title":"Lateral Ft"},"vertical_drop_ft":{"type":"number","title":"Vertical Drop Ft"}},"type":"object","required":["station_ft","lateral_ft","vertical_drop_ft"],"title":"BlowoutStation"},"Body_api_parse_pls_file_pls_parse_pls_file_post":{"properties":{"pol_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Pol File"},"loa_file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Loa File"}},"type":"object","required":["pol_file"],"title":"Body_api_parse_pls_file_pls_parse_pls_file_post"},"Body_api_parse_spida_file_spida_parse_spida_file_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_api_parse_spida_file_spida_parse_spida_file_post"},"Body_post_aggregate_service_point_loads_circuit_aggregate_service_point_loads_post":{"properties":{"service_points":{"items":{"$ref":"#/components/schemas/ServicePointLoad"},"type":"array","title":"Service Points"}},"type":"object","required":["service_points"],"title":"Body_post_aggregate_service_point_loads_circuit_aggregate_service_point_loads_post"},"Body_post_analyze_phase_balance_circuit_analyze_phase_balance_post":{"properties":{"service_points":{"items":{"$ref":"#/components/schemas/ServicePointLoad"},"type":"array","title":"Service Points"}},"type":"object","required":["service_points"],"title":"Body_post_analyze_phase_balance_circuit_analyze_phase_balance_post"},"Body_post_calculate_available_fault_current_circuit_calculate_available_fault_current_post":{"properties":{"nominal_line_to_line_volts":{"type":"number","title":"Nominal Line To Line Volts"},"fault_type":{"$ref":"#/components/schemas/FaultType"},"source_z1":{"$ref":"#/components/schemas/SequenceImpedance"},"path_z1":{"$ref":"#/components/schemas/SequenceImpedance"},"source_z0":{"anyOf":[{"$ref":"#/components/schemas/SequenceImpedance"},{"type":"null"}]},"path_z0":{"anyOf":[{"$ref":"#/components/schemas/SequenceImpedance"},{"type":"null"}]},"source_z2":{"anyOf":[{"$ref":"#/components/schemas/SequenceImpedance"},{"type":"null"}]},"path_z2":{"anyOf":[{"$ref":"#/components/schemas/SequenceImpedance"},{"type":"null"}]}},"type":"object","required":["nominal_line_to_line_volts","fault_type","source_z1","path_z1"],"title":"Body_post_calculate_available_fault_current_circuit_calculate_available_fault_current_post"},"Body_post_calculate_cable_fault_withstand_circuit_calculate_cable_fault_withstand_post":{"properties":{"conductor_area_cmil":{"type":"number","title":"Conductor Area Cmil"},"cable_material":{"type":"string","title":"Cable Material"},"fault_duration_sec":{"type":"number","title":"Fault Duration Sec"}},"type":"object","required":["conductor_area_cmil","cable_material","fault_duration_sec"],"title":"Body_post_calculate_cable_fault_withstand_circuit_calculate_cable_fault_withstand_post"},"Body_post_calculate_conductor_voltage_drop_circuit_calculate_conductor_voltage_drop_post":{"properties":{"current_a":{"type":"number","title":"Current A"},"resistance_ohm_per_mile":{"type":"number","title":"Resistance Ohm Per Mile"},"reactance_ohm_per_mile":{"type":"number","title":"Reactance Ohm Per Mile"},"length_ft":{"type":"number","title":"Length Ft"},"power_factor":{"type":"number","title":"Power Factor"},"phase_config":{"$ref":"#/components/schemas/ConductorPhaseConfig"},"nominal_line_to_line_volts":{"type":"number","title":"Nominal Line To Line Volts"}},"type":"object","required":["current_a","resistance_ohm_per_mile","reactance_ohm_per_mile","length_ft","power_factor","phase_config","nominal_line_to_line_volts"],"title":"Body_post_calculate_conductor_voltage_drop_circuit_calculate_conductor_voltage_drop_post"},"Body_post_calculate_ground_potential_rise_circuit_calculate_ground_potential_rise_post":{"properties":{"symmetrical_fault_current_amps":{"type":"number","title":"Symmetrical Fault Current Amps"},"split_factor":{"type":"number","title":"Split Factor"},"x_over_r_ratio":{"type":"number","title":"X Over R Ratio"},"fault_duration_sec":{"type":"number","title":"Fault Duration Sec"},"grid_resistance_ohm":{"type":"number","title":"Grid Resistance Ohm"},"frequency_hz":{"type":"number","title":"Frequency Hz","default":60.0}},"type":"object","required":["symmetrical_fault_current_amps","split_factor","x_over_r_ratio","fault_duration_sec","grid_resistance_ohm"],"title":"Body_post_calculate_ground_potential_rise_circuit_calculate_ground_potential_rise_post"},"Body_post_calculate_grounding_grid_resistance_circuit_calculate_grounding_grid_resistance_post":{"properties":{"soil_resistivity_ohm_m":{"type":"number","title":"Soil Resistivity Ohm M"},"geometry":{"$ref":"#/components/schemas/GroundingGridGeometry"}},"type":"object","required":["soil_resistivity_ohm_m","geometry"],"title":"Body_post_calculate_grounding_grid_resistance_circuit_calculate_grounding_grid_resistance_post"},"Body_post_calculate_induced_sheath_voltage_gradient_circuit_calculate_induced_sheath_voltage_gradient_post":{"properties":{"conductor_spacing_m":{"type":"number","title":"Conductor Spacing M"},"sheath_mean_diameter_m":{"type":"number","title":"Sheath Mean Diameter M"},"phase_current_amps":{"type":"number","title":"Phase Current Amps"},"frequency_hz":{"type":"number","title":"Frequency Hz","default":60.0}},"type":"object","required":["conductor_spacing_m","sheath_mean_diameter_m","phase_current_amps"],"title":"Body_post_calculate_induced_sheath_voltage_gradient_circuit_calculate_induced_sheath_voltage_gradient_post"},"Body_post_calculate_line_constants_circuit_calculate_line_constants_post":{"properties":{"gmr_ft":{"type":"number","title":"Gmr Ft"},"rac_ohm_per_mile":{"type":"number","title":"Rac Ohm Per Mile"},"phase_spacing_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Phase Spacing Ft"},"dab_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dab Ft"},"dbc_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dbc Ft"},"dca_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dca Ft"},"conductor_radius_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Conductor Radius Ft"},"frequency_hz":{"type":"number","title":"Frequency Hz","default":60.0},"earth_resistivity_ohm_m":{"type":"number","title":"Earth Resistivity Ohm M","default":100.0}},"type":"object","required":["gmr_ft","rac_ohm_per_mile"],"title":"Body_post_calculate_line_constants_circuit_calculate_line_constants_post"},"Body_post_calculate_max_sheath_bonded_length_circuit_calculate_max_sheath_bonded_length_post":{"properties":{"induced_voltage_gradient_v_per_m":{"type":"number","title":"Induced Voltage Gradient V Per M"},"sheath_voltage_limit_v":{"type":"number","title":"Sheath Voltage Limit V"}},"type":"object","required":["induced_voltage_gradient_v_per_m","sheath_voltage_limit_v"],"title":"Body_post_calculate_max_sheath_bonded_length_circuit_calculate_max_sheath_bonded_length_post"},"Body_post_calculate_mesh_and_step_voltage_circuit_calculate_mesh_and_step_voltage_post":{"properties":{"soil_resistivity_ohm_m":{"type":"number","title":"Soil Resistivity Ohm M"},"geometry":{"$ref":"#/components/schemas/GroundingGridGeometry"},"grid_current_amps":{"type":"number","title":"Grid Current Amps"}},"type":"object","required":["soil_resistivity_ohm_m","geometry","grid_current_amps"],"title":"Body_post_calculate_mesh_and_step_voltage_circuit_calculate_mesh_and_step_voltage_post"},"Body_post_calculate_overcurrent_relay_trip_time_circuit_calculate_overcurrent_relay_trip_time_post":{"properties":{"curve":{"$ref":"#/components/schemas/OvercurrentCurve"},"multiple_of_pickup":{"type":"number","title":"Multiple Of Pickup"},"time_dial_setting":{"type":"number","title":"Time Dial Setting"}},"type":"object","required":["curve","multiple_of_pickup","time_dial_setting"],"title":"Body_post_calculate_overcurrent_relay_trip_time_circuit_calculate_overcurrent_relay_trip_time_post"},"Body_post_calculate_path_impedance_circuit_calculate_path_impedance_post":{"properties":{"segments":{"items":{"$ref":"#/components/schemas/ImpedanceSegment"},"type":"array","title":"Segments"}},"type":"object","required":["segments"],"title":"Body_post_calculate_path_impedance_circuit_calculate_path_impedance_post"},"Body_post_calculate_phase_balance_circuit_calculate_phase_balance_post":{"properties":{"phase_loads_kva":{"additionalProperties":{"type":"number"},"type":"object","title":"Phase Loads Kva"},"network_kind":{"type":"string","enum":["three_phase","split_phase","mixed","unknown"],"title":"Network Kind"},"services_with_unknown_phase":{"type":"integer","title":"Services With Unknown Phase","default":0}},"type":"object","required":["phase_loads_kva","network_kind"],"title":"Body_post_calculate_phase_balance_circuit_calculate_phase_balance_post"},"Body_post_calculate_sheath_bonding_loss_factor_circuit_calculate_sheath_bonding_loss_factor_post":{"properties":{"sheath_resistance_ohm_per_m":{"type":"number","title":"Sheath Resistance Ohm Per M"},"conductor_ac_resistance_ohm_per_m":{"type":"number","title":"Conductor Ac Resistance Ohm Per M"},"conductor_spacing_m":{"type":"number","title":"Conductor Spacing M"},"sheath_mean_diameter_m":{"type":"number","title":"Sheath Mean Diameter M"},"frequency_hz":{"type":"number","title":"Frequency Hz","default":60.0}},"type":"object","required":["sheath_resistance_ohm_per_m","conductor_ac_resistance_ohm_per_m","conductor_spacing_m","sheath_mean_diameter_m"],"title":"Body_post_calculate_sheath_bonding_loss_factor_circuit_calculate_sheath_bonding_loss_factor_post"},"Body_post_calculate_sheath_standing_voltage_circuit_calculate_sheath_standing_voltage_post":{"properties":{"induced_voltage_gradient_v_per_m":{"type":"number","title":"Induced Voltage Gradient V Per M"},"bonded_length_m":{"type":"number","title":"Bonded Length M"}},"type":"object","required":["induced_voltage_gradient_v_per_m","bonded_length_m"],"title":"Body_post_calculate_sheath_standing_voltage_circuit_calculate_sheath_standing_voltage_post"},"Body_post_calculate_surface_layer_derating_factor_circuit_calculate_surface_layer_derating_factor_post":{"properties":{"native_soil_resistivity_ohm_m":{"type":"number","title":"Native Soil Resistivity Ohm M"},"surface_material_resistivity_ohm_m":{"type":"number","title":"Surface Material Resistivity Ohm M"},"surface_layer_thickness_m":{"type":"number","title":"Surface Layer Thickness M"}},"type":"object","required":["native_soil_resistivity_ohm_m","surface_material_resistivity_ohm_m","surface_layer_thickness_m"],"title":"Body_post_calculate_surface_layer_derating_factor_circuit_calculate_surface_layer_derating_factor_post"},"Body_post_calculate_tolerable_touch_step_voltage_circuit_calculate_tolerable_touch_step_voltage_post":{"properties":{"derating_factor":{"type":"number","title":"Derating Factor"},"surface_material_resistivity_ohm_m":{"type":"number","title":"Surface Material Resistivity Ohm M"},"shock_duration_sec":{"type":"number","title":"Shock Duration Sec"}},"type":"object","required":["derating_factor","surface_material_resistivity_ohm_m","shock_duration_sec"],"title":"Body_post_calculate_tolerable_touch_step_voltage_circuit_calculate_tolerable_touch_step_voltage_post"},"Body_post_calculate_transformer_hottest_spot_circuit_calculate_transformer_hottest_spot_post":{"properties":{"transformer":{"$ref":"#/components/schemas/TransformerThermalProps"},"actual_load_kva":{"type":"number","title":"Actual Load Kva"},"ambient_temp_c":{"type":"number","title":"Ambient Temp C"}},"type":"object","required":["transformer","actual_load_kva","ambient_temp_c"],"title":"Body_post_calculate_transformer_hottest_spot_circuit_calculate_transformer_hottest_spot_post"},"Body_post_calculate_underground_cable_ampacity_circuit_calculate_underground_cable_ampacity_post":{"properties":{"t1_thermal_resistance_k_m_per_w":{"type":"number","title":"T1 Thermal Resistance K M Per W"},"ac_resistance_ohm_per_m":{"type":"number","title":"Ac Resistance Ohm Per M"},"ambient_temp_c":{"type":"number","title":"Ambient Temp C"},"max_conductor_temp_c":{"type":"number","title":"Max Conductor Temp C"},"soil_thermal_resistivity_k_m_per_w":{"type":"number","title":"Soil Thermal Resistivity K M Per W"},"burial_depth_to_center_m":{"type":"number","title":"Burial Depth To Center M"},"cable_external_diameter_m":{"type":"number","title":"Cable External Diameter M"},"dielectric_loss_w_per_m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dielectric Loss W Per M"}},"type":"object","required":["t1_thermal_resistance_k_m_per_w","ac_resistance_ohm_per_m","ambient_temp_c","max_conductor_temp_c","soil_thermal_resistivity_k_m_per_w","burial_depth_to_center_m","cable_external_diameter_m"],"title":"Body_post_calculate_underground_cable_ampacity_circuit_calculate_underground_cable_ampacity_post"},"Body_post_estimate_pst_from_step_circuit_estimate_pst_from_step_post":{"properties":{"delta_v_pct":{"type":"number","title":"Delta V Pct"},"starts_per_hour":{"type":"number","title":"Starts Per Hour"}},"type":"object","required":["delta_v_pct","starts_per_hour"],"title":"Body_post_estimate_pst_from_step_circuit_estimate_pst_from_step_post"},"Body_post_fit_two_layer_soil_model_circuit_fit_two_layer_soil_model_post":{"properties":{"readings":{"items":{"$ref":"#/components/schemas/WennerReading"},"type":"array","title":"Readings"},"h_search_min_m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"H Search Min M"},"h_search_max_m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"H Search Max M"}},"type":"object","required":["readings"],"title":"Body_post_fit_two_layer_soil_model_circuit_fit_two_layer_soil_model_post"},"Body_post_fit_uniform_soil_model_circuit_fit_uniform_soil_model_post":{"properties":{"readings":{"items":{"$ref":"#/components/schemas/WennerReading"},"type":"array","title":"Readings"}},"type":"object","required":["readings"],"title":"Body_post_fit_uniform_soil_model_circuit_fit_uniform_soil_model_post"},"Body_post_render_tower_scene_utm_render_tower_scene_post":{"properties":{"input":{"$ref":"#/components/schemas/LatticeTower"},"shield_wires":{"anyOf":[{"items":{"$ref":"#/components/schemas/ShieldWire"},"type":"array"},{"type":"null"}],"title":"Shield Wires"},"insulators":{"anyOf":[{"items":{"$ref":"#/components/schemas/utm_agent_harness__ontology__nodes__Insulator"},"type":"array"},{"type":"null"}],"title":"Insulators"},"attachment_hardware":{"anyOf":[{"items":{"$ref":"#/components/schemas/AttachmentHardware"},"type":"array"},{"type":"null"}],"title":"Attachment Hardware"}},"type":"object","required":["input"],"title":"Body_post_render_tower_scene_utm_render_tower_scene_post"},"Body_post_typical_soil_resistivity_from_category_circuit_typical_soil_resistivity_from_category_post":{"properties":{"category":{"type":"string","title":"Category"}},"type":"object","required":["category"],"title":"Body_post_typical_soil_resistivity_from_category_circuit_typical_soil_resistivity_from_category_post"},"Body_post_typical_soil_resistivity_from_remarks_circuit_typical_soil_resistivity_from_remarks_post":{"properties":{"remarks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remarks"}},"type":"object","title":"Body_post_typical_soil_resistivity_from_remarks_circuit_typical_soil_resistivity_from_remarks_post"},"BuildBandedRangeChartDataRequest":{"properties":{"value":{"type":"number","title":"Value"},"value_label":{"type":"string","title":"Value Label"},"unit":{"type":"string","title":"Unit"},"bands":{"items":{"prefixItems":[{"type":"string"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3},"type":"array","title":"Bands"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["value","value_label","unit","bands","source_ref"],"title":"BuildBandedRangeChartDataRequest"},"BuildCrossarmInputsRequest":{"properties":{"pole":{"$ref":"#/components/schemas/ClassificationPoleModel-Input"}},"type":"object","required":["pole"],"title":"BuildCrossarmInputsRequest"},"BuildCurveChartDataRequest":{"properties":{"curve_points":{"items":{"$ref":"#/components/schemas/CurvePoint"},"type":"array","title":"Curve Points"},"result":{"$ref":"#/components/schemas/FlowRateInterpolationResult"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["curve_points","result","source_ref"],"title":"BuildCurveChartDataRequest"},"BuildThresholdGaugeChartDataRequest":{"properties":{"value":{"type":"number","title":"Value"},"value_label":{"type":"string","title":"Value Label"},"unit":{"type":"string","title":"Unit"},"thresholds":{"items":{"$ref":"#/components/schemas/GaugeThreshold"},"type":"array","title":"Thresholds"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["value","value_label","unit","thresholds","source_ref"],"title":"BuildThresholdGaugeChartDataRequest"},"BusConfiguration":{"type":"string","enum":["single_bus","sectionalized_bus","main_and_transfer_bus","ring_bus","breaker_and_a_half","double_breaker_double_bus","other"],"title":"BusConfiguration","description":"**Revised 2026-07-19** from the original 4-value-plus-OTHER phase-1 stub to the 6 named\nschemes RUS Bulletin 1724E-300 §4.6 actually documents (a primary USDA RUS design guide) — see\n`standards/bus_topology/typical_bus_configurations_1724e_300.md`. `DOUBLE_BUS` is retired:\nthe Bulletin has no scheme literally named \"double bus\"; `DOUBLE_BREAKER_DOUBLE_BUS` is its\nreal matching scheme (breaker_count = 2 x circuit_count), and `SECTIONALIZED_BUS`/\n`MAIN_AND_TRANSFER_BUS` are two more real named schemes this repo's original enum omitted\nentirely. OTHER exists so a caller is never forced to mis-classify a substation using a\nconfiguration outside these six named types, not as an invitation to route out-of-scope\nconfigurations through this schema unexamined."},"CRatePowerLimitResult":{"properties":{"nameplate_capacity_kwh":{"type":"number","title":"Nameplate Capacity Kwh"},"c_rate":{"type":"number","title":"C Rate"},"power_limit_kw":{"type":"number","title":"Power Limit Kw"},"provenance":{"$ref":"#/components/schemas/der_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["nameplate_capacity_kwh","c_rate","power_limit_kw","provenance"],"title":"CRatePowerLimitResult"},"CableFaultWithstandResult":{"properties":{"conductor_area_cmil":{"type":"number","title":"Conductor Area Cmil"},"cable_material":{"type":"string","title":"Cable Material"},"k_factor":{"type":"number","title":"K Factor"},"fault_duration_sec":{"type":"number","title":"Fault Duration Sec"},"withstand_amps":{"type":"number","title":"Withstand Amps"},"withstand_ka":{"type":"number","title":"Withstand Ka"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["conductor_area_cmil","cable_material","k_factor","fault_duration_sec","withstand_amps","withstand_ka","provenance"],"title":"CableFaultWithstandResult"},"CalculateAmpacityDeratingRequest":{"properties":{"cable_size":{"type":"string","title":"Cable Size"},"cable_material":{"type":"string","title":"Cable Material","default":"AL"},"circuits_in_trench":{"type":"integer","title":"Circuits In Trench","default":1},"rho_soil":{"type":"number","title":"Rho Soil","default":90.0},"burial_depth_in":{"type":"number","title":"Burial Depth In","default":36.0},"ambient_temp_c":{"type":"number","title":"Ambient Temp C","default":20.0},"in_conduit":{"type":"boolean","title":"In Conduit","default":true}},"type":"object","required":["cable_size"],"title":"CalculateAmpacityDeratingRequest"},"CalculateArcFlashEnergyRequest":{"properties":{"available_fault_current_ka":{"type":"number","title":"Available Fault Current Ka","default":10.0},"clearing_time_sec":{"type":"number","title":"Clearing Time Sec","default":0.5},"working_distance_in":{"type":"number","title":"Working Distance In","default":24.0},"enclosure_type":{"type":"string","title":"Enclosure Type","default":"pad_mount"},"voltage_kv":{"type":"number","title":"Voltage Kv","default":12.47}},"type":"object","title":"CalculateArcFlashEnergyRequest"},"CalculateCRatePowerLimitRequest":{"properties":{"nameplate_capacity_kwh":{"type":"number","title":"Nameplate Capacity Kwh"},"c_rate":{"type":"number","title":"C Rate"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["nameplate_capacity_kwh","c_rate","source_ref"],"title":"CalculateCRatePowerLimitRequest"},"CalculateCableAmpacityRequest":{"properties":{"cable_size":{"type":"string","title":"Cable Size"},"cable_material":{"type":"string","title":"Cable Material","default":"AL"},"rho_soil":{"type":"number","title":"Rho Soil","default":90.0},"burial_depth_in":{"type":"number","title":"Burial Depth In","default":36.0},"ambient_temp_c":{"type":"number","title":"Ambient Temp C","default":20.0},"max_conductor_temp_c":{"type":"number","title":"Max Conductor Temp C","default":90.0},"in_conduit":{"type":"boolean","title":"In Conduit","default":true},"circuit_count":{"type":"integer","title":"Circuit Count","default":1}},"type":"object","required":["cable_size"],"title":"CalculateCableAmpacityRequest"},"CalculateCableFaultWithstandRequest":{"properties":{"cable_size":{"type":"string","title":"Cable Size"},"cable_material":{"type":"string","title":"Cable Material","default":"AL"},"fault_duration_sec":{"type":"number","title":"Fault Duration Sec","default":0.5},"initial_temp_c":{"type":"number","title":"Initial Temp C","default":90.0},"max_temp_c":{"type":"number","title":"Max Temp C","default":250.0}},"type":"object","required":["cable_size"],"title":"CalculateCableFaultWithstandRequest"},"CalculateChargeDurationRequest":{"properties":{"energy_needed_kwh":{"type":"number","title":"Energy Needed Kwh"},"charge_power_kw":{"type":"number","title":"Charge Power Kw"},"source_ref":{"type":"string","title":"Source Ref"},"c_rate_power_limit_kw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"C Rate Power Limit Kw"}},"type":"object","required":["energy_needed_kwh","charge_power_kw","source_ref"],"title":"CalculateChargeDurationRequest"},"CalculateComponentAvailabilityRequest":{"properties":{"mtbf_hours":{"type":"number","title":"Mtbf Hours"},"mttr_hours":{"type":"number","title":"Mttr Hours"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["mtbf_hours","mttr_hours","source_ref"],"title":"CalculateComponentAvailabilityRequest"},"CalculateConcentricNeutralAdequacyRequest":{"properties":{"neutral_size_awg":{"type":"string","title":"Neutral Size Awg","default":"14"},"neutral_count":{"type":"integer","title":"Neutral Count","default":16},"available_fault_current_ka":{"type":"number","title":"Available Fault Current Ka","default":10.0},"fault_duration_sec":{"type":"number","title":"Fault Duration Sec","default":0.5}},"type":"object","title":"CalculateConcentricNeutralAdequacyRequest"},"CalculateConcreteEncasementRequest":{"properties":{"bank_width_in":{"type":"number","title":"Bank Width In"},"bank_height_in":{"type":"number","title":"Bank Height In"},"length_ft":{"type":"number","title":"Length Ft"}},"type":"object","required":["bank_width_in","bank_height_in","length_ft"],"title":"CalculateConcreteEncasementRequest"},"CalculateDischargeDurationRequest":{"properties":{"energy_available_kwh":{"type":"number","title":"Energy Available Kwh"},"discharge_power_kw":{"type":"number","title":"Discharge Power Kw"},"source_ref":{"type":"string","title":"Source Ref"},"c_rate_power_limit_kw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"C Rate Power Limit Kw"}},"type":"object","required":["energy_available_kwh","discharge_power_kw","source_ref"],"title":"CalculateDischargeDurationRequest"},"CalculateDuctBankAmpacityRequest":{"properties":{"base_ampacity_a":{"type":"number","title":"Base Ampacity A"},"conduits_per_row":{"type":"integer","title":"Conduits Per Row"},"num_rows":{"type":"integer","title":"Num Rows"},"rho_soil":{"type":"number","title":"Rho Soil","default":90.0},"burial_depth_in":{"type":"number","title":"Burial Depth In","default":36.0},"ambient_temp_c":{"type":"number","title":"Ambient Temp C","default":20.0}},"type":"object","required":["base_ampacity_a","conduits_per_row","num_rows"],"title":"CalculateDuctBankAmpacityRequest"},"CalculateEmergencyAmpacityRequest":{"properties":{"cable_size":{"type":"string","title":"Cable Size"},"cable_material":{"type":"string","title":"Cable Material","default":"AL"},"rho_soil":{"type":"number","title":"Rho Soil","default":90.0},"burial_depth_in":{"type":"number","title":"Burial Depth In","default":36.0},"ambient_temp_c":{"type":"number","title":"Ambient Temp C","default":20.0},"in_conduit":{"type":"boolean","title":"In Conduit","default":true},"circuit_count":{"type":"integer","title":"Circuit Count","default":1},"emergency_temp_c":{"type":"number","title":"Emergency Temp C","default":130.0},"duration_hours":{"type":"number","title":"Duration Hours","default":4.0}},"type":"object","required":["cable_size"],"title":"CalculateEmergencyAmpacityRequest"},"CalculateMaxPullLengthRequest":{"properties":{"cable_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cable Type"},"cable_weight_per_ft_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cable Weight Per Ft Lb"},"max_tension_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Tension Lb"},"coefficient_of_friction":{"type":"number","title":"Coefficient Of Friction","default":0.35},"cable_count":{"type":"integer","title":"Cable Count","default":3},"bend_angles_deg":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Bend Angles Deg"}},"type":"object","title":"CalculateMaxPullLengthRequest"},"CalculateMinimumBendingRadiusRequest":{"properties":{"cable_od_in":{"type":"number","title":"Cable Od In"},"voltage_class_kv":{"type":"number","title":"Voltage Class Kv","default":15.0},"shielded":{"type":"boolean","title":"Shielded","default":true}},"type":"object","required":["cable_od_in"],"title":"CalculateMinimumBendingRadiusRequest"},"CalculatePullingTensionRequest":{"properties":{"sections":{"items":{"$ref":"#/components/schemas/PullSection"},"type":"array","title":"Sections"},"cable_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cable Type"},"cable_weight_per_ft_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cable Weight Per Ft Lb"},"max_tension_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Tension Lb"},"max_sidewall_pressure_lb_per_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Sidewall Pressure Lb Per Ft"},"coefficient_of_friction":{"type":"number","title":"Coefficient Of Friction","default":0.35},"cable_count":{"type":"integer","title":"Cable Count","default":3}},"type":"object","required":["sections"],"title":"CalculatePullingTensionRequest"},"CalculateRedundancyCapacityMarginRequest":{"properties":{"unit_count":{"type":"integer","title":"Unit Count"},"per_unit_capacity":{"type":"number","title":"Per Unit Capacity"},"required_capacity":{"type":"number","title":"Required Capacity"},"source_ref":{"type":"string","title":"Source Ref"},"failed_unit_count":{"type":"integer","title":"Failed Unit Count","default":1}},"type":"object","required":["unit_count","per_unit_capacity","required_capacity","source_ref"],"title":"CalculateRedundancyCapacityMarginRequest"},"CalculateRedundantSystemAvailabilityRequest":{"properties":{"component_availabilities":{"items":{"type":"number"},"type":"array","title":"Component Availabilities"},"required_count":{"type":"integer","title":"Required Count"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["component_availabilities","required_count","source_ref"],"title":"CalculateRedundantSystemAvailabilityRequest"},"CalculateRiserDeadLoadRequest":{"properties":{"riser_height_ft":{"type":"number","title":"Riser Height Ft","default":20.0},"below_grade_depth_ft":{"type":"number","title":"Below Grade Depth Ft","default":3.0},"conduit_size_in":{"type":"number","title":"Conduit Size In","default":4.0},"conduit_material":{"type":"string","title":"Conduit Material","default":"rigid_steel"},"cable_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cable Type"},"cable_weight_per_ft_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cable Weight Per Ft Lb"},"cable_count":{"type":"integer","title":"Cable Count","default":3}},"type":"object","title":"CalculateRiserDeadLoadRequest"},"CalculateRoundTripEfficiencyLossRequest":{"properties":{"energy_in_kwh":{"type":"number","title":"Energy In Kwh"},"round_trip_efficiency":{"type":"number","title":"Round Trip Efficiency"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["energy_in_kwh","round_trip_efficiency","source_ref"],"title":"CalculateRoundTripEfficiencyLossRequest"},"CalculateStateOfChargeRequest":{"properties":{"present_energy_kwh":{"type":"number","title":"Present Energy Kwh"},"usable_energy_capacity_kwh":{"type":"number","title":"Usable Energy Capacity Kwh"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["present_energy_kwh","usable_energy_capacity_kwh","source_ref"],"title":"CalculateStateOfChargeRequest"},"CalculateTransferSwitchRideThroughMarginRequest":{"properties":{"transfer_time_s":{"type":"number","title":"Transfer Time S"},"ride_through_time_s":{"type":"number","title":"Ride Through Time S"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["transfer_time_s","ride_through_time_s","source_ref"],"title":"CalculateTransferSwitchRideThroughMarginRequest"},"CalculateTransformerCapacityPlanRequest":{"properties":{"rack_count":{"type":"integer","title":"Rack Count"},"kw_per_rack":{"type":"number","title":"Kw Per Rack"},"installed_unit_count":{"type":"integer","title":"Installed Unit Count"},"unit_rated_kva":{"type":"number","title":"Unit Rated Kva"},"source_ref":{"type":"string","title":"Source Ref"},"power_factor":{"type":"number","title":"Power Factor","default":0.9}},"type":"object","required":["rack_count","kw_per_rack","installed_unit_count","unit_rated_kva","source_ref"],"title":"CalculateTransformerCapacityPlanRequest"},"CalculateTrenchDimensionsRequest":{"properties":{"conduit_count":{"type":"integer","title":"Conduit Count"},"conduit_size_in":{"type":"number","title":"Conduit Size In","default":4.0},"burial_depth_in":{"type":"number","title":"Burial Depth In","default":36.0},"max_conduits_per_row":{"type":"integer","title":"Max Conduits Per Row","default":4},"spacing_in":{"type":"number","title":"Spacing In","default":7.5},"cover_in":{"type":"number","title":"Cover In","default":3.0},"wall_clearance_in":{"type":"number","title":"Wall Clearance In","default":3.0},"concrete_encased":{"type":"boolean","title":"Concrete Encased","default":false}},"type":"object","required":["conduit_count"],"title":"CalculateTrenchDimensionsRequest"},"CalculateUsableEnergyRequest":{"properties":{"nameplate_capacity_kwh":{"type":"number","title":"Nameplate Capacity Kwh"},"depth_of_discharge":{"type":"number","title":"Depth Of Discharge"},"source_ref":{"type":"string","title":"Source Ref"},"reserve_margin":{"type":"number","title":"Reserve Margin","default":0.0}},"type":"object","required":["nameplate_capacity_kwh","depth_of_discharge","source_ref"],"title":"CalculateUsableEnergyRequest"},"CalculateValveActuatorTorqueRequest":{"properties":{"differential_pressure_pa":{"type":"number","title":"Differential Pressure Pa"},"seat_diameter_m":{"type":"number","title":"Seat Diameter M"},"torque_coefficient":{"type":"number","title":"Torque Coefficient"},"source_ref":{"type":"string","title":"Source Ref"},"safety_factor":{"type":"number","title":"Safety Factor","default":1.25}},"type":"object","required":["differential_pressure_pa","seat_diameter_m","torque_coefficient","source_ref"],"title":"CalculateValveActuatorTorqueRequest"},"CalculateValveStrokeTimeMarginRequest":{"properties":{"stroke_time_s":{"type":"number","title":"Stroke Time S"},"required_response_time_s":{"type":"number","title":"Required Response Time S"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["stroke_time_s","required_response_time_s","source_ref"],"title":"CalculateValveStrokeTimeMarginRequest"},"CalculateVaultConduitUtilizationRequest":{"properties":{"total_ports":{"type":"integer","title":"Total Ports"},"ports_in_use":{"type":"integer","title":"Ports In Use"},"total_cables":{"type":"integer","title":"Total Cables","default":0},"max_cables_per_port":{"type":"integer","title":"Max Cables Per Port","default":3}},"type":"object","required":["total_ports","ports_in_use"],"title":"CalculateVaultConduitUtilizationRequest"},"CalculateVoltageDropRequest":{"properties":{"cable_size":{"type":"string","title":"Cable Size"},"cable_material":{"type":"string","title":"Cable Material","default":"AL"},"length_ft":{"type":"number","title":"Length Ft","default":1000.0},"load_amps":{"type":"number","title":"Load Amps","default":200.0},"voltage_ll_v":{"type":"number","title":"Voltage Ll V","default":12470.0},"power_factor":{"type":"number","title":"Power Factor","default":0.9},"phases":{"type":"integer","title":"Phases","default":3}},"type":"object","required":["cable_size"],"title":"CalculateVoltageDropRequest"},"CapacityMarginResult":{"properties":{"cooling_type":{"type":"string","title":"Cooling Type"},"capacity_kind":{"type":"string","title":"Capacity Kind"},"demand_kw":{"type":"number","title":"Demand Kw"},"supply_kw":{"type":"number","title":"Supply Kw"},"margin_kw":{"type":"number","title":"Margin Kw"},"margin_percent":{"type":"number","title":"Margin Percent"},"supply_units":{"items":{"$ref":"#/components/schemas/CoolingSupplyUnit"},"type":"array","title":"Supply Units"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["cooling_type","capacity_kind","demand_kw","supply_kw","margin_kw","margin_percent","supply_units","provenance"],"title":"CapacityMarginResult"},"CapacitySummary":{"properties":{"pole_utilization_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pole Utilization Percent"},"max_capacity_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Capacity Height Ft"},"ground_line_utilization_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ground Line Utilization Percent"},"vertical_load_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vertical Load Percent"},"buckling_column_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Buckling Column Height Ft"},"guy_wire_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guy Wire Status"},"applied_go95_rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Applied Go95 Rule"},"pole_strength_factor":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pole Strength Factor"},"pole_factor_of_safety":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pole Factor Of Safety"},"bending_factor_of_safety":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bending Factor Of Safety"},"vertical_factor_of_safety":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vertical Factor Of Safety"},"provenance":{"$ref":"#/components/schemas/ocalc_harness__functions__provenance__Provenance"}},"type":"object","required":["provenance"],"title":"CapacitySummary"},"CduModel":{"properties":{"key":{"type":"string","title":"Key"},"oem":{"type":"string","title":"Oem"},"model":{"type":"string","title":"Model"},"description":{"type":"string","title":"Description"},"nominal_cooling_capacity_kw":{"type":"number","title":"Nominal Cooling Capacity Kw"},"maximum_cooling_capacity_kw":{"type":"number","title":"Maximum Cooling Capacity Kw"},"length_mm":{"type":"number","title":"Length Mm"},"width_mm":{"type":"number","title":"Width Mm"},"height_mm":{"type":"number","title":"Height Mm"},"weight_kg":{"type":"number","title":"Weight Kg"},"primary_connection":{"type":"string","title":"Primary Connection"},"secondary_connection":{"type":"string","title":"Secondary Connection"},"source":{"type":"string","title":"Source"}},"type":"object","required":["key","oem","model","description","nominal_cooling_capacity_kw","maximum_cooling_capacity_kw","length_mm","width_mm","height_mm","weight_kg","primary_connection","secondary_connection","source"],"title":"CduModel"},"ChangeOfStateResult":{"properties":{"final_tension_lb":{"type":"number","title":"Final Tension Lb"},"final_sag_ft":{"type":"number","title":"Final Sag Ft"},"final_unit_weight_lb_per_ft":{"type":"number","title":"Final Unit Weight Lb Per Ft"},"percent_of_rbs":{"type":"number","title":"Percent Of Rbs"},"iterations":{"type":"integer","title":"Iterations"},"swing_angle_deg":{"type":"number","title":"Swing Angle Deg","default":0.0},"final_vertical_weight_lb_per_ft":{"type":"number","title":"Final Vertical Weight Lb Per Ft","default":0.0},"final_horizontal_weight_lb_per_ft":{"type":"number","title":"Final Horizontal Weight Lb Per Ft","default":0.0},"midspan_blowout_ft":{"type":"number","title":"Midspan Blowout Ft","default":0.0},"midspan_vertical_sag_ft":{"type":"number","title":"Midspan Vertical Sag Ft","default":0.0},"diameter_estimated":{"type":"boolean","title":"Diameter Estimated","default":false},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["final_tension_lb","final_sag_ft","final_unit_weight_lb_per_ft","percent_of_rbs","iterations","provenance"],"title":"ChangeOfStateResult"},"ChargeDurationResult":{"properties":{"energy_needed_kwh":{"type":"number","title":"Energy Needed Kwh"},"requested_power_kw":{"type":"number","title":"Requested Power Kw"},"applied_power_kw":{"type":"number","title":"Applied Power Kw"},"power_was_capped":{"type":"boolean","title":"Power Was Capped"},"duration_hours":{"type":"number","title":"Duration Hours"},"provenance":{"$ref":"#/components/schemas/der_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["energy_needed_kwh","requested_power_kw","applied_power_kw","power_was_capped","duration_hours","provenance"],"title":"ChargeDurationResult"},"ChartBand":{"properties":{"label":{"type":"string","title":"Label"},"low":{"type":"number","title":"Low"},"high":{"type":"number","title":"High"},"contains_value":{"type":"boolean","title":"Contains Value"}},"type":"object","required":["label","low","high","contains_value"],"title":"ChartBand"},"CheckAlternateAccessRouteInput":{"properties":{"continuous_clear_width_inches":{"type":"number","title":"Continuous Clear Width Inches"},"uses_existing_pedestrian_circulation_path":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Uses Existing Pedestrian Circulation Path"},"closed_pedestrian_circulation_path_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Closed Pedestrian Circulation Path Width Inches"},"signage_provided_in_advance_of_decision_points":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Signage Provided In Advance Of Decision Points"},"non_visual_wayfinding_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Non Visual Wayfinding Provided"},"surface_complies_with_r302_6":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Surface Complies With R302 6"},"surface_at_least_as_accessible_as_closed_path":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Surface At Least As Accessible As Closed Path"},"crosses_curb":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Crosses Curb"},"curb_ramp_or_blended_transition_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Curb Ramp Or Blended Transition Provided"},"uses_channelizing_devices":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Uses Channelizing Devices"},"detectable_edging_top_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Detectable Edging Top Height Inches"},"detectable_edging_bottom_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Detectable Edging Bottom Height Inches"},"has_temporary_pedestrian_signal_heads":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Temporary Pedestrian Signal Heads"},"pushbutton_or_passive_detection_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pushbutton Or Passive Detection Provided"}},"type":"object","required":["continuous_clear_width_inches"],"title":"CheckAlternateAccessRouteInput"},"CheckBenchScopingInput":{"properties":{"context":{"$ref":"#/components/schemas/BenchContext"},"is_within_shelter":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Within Shelter"},"clear_space_complies_with_r404":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clear Space Complies With R404"},"total_bench_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Bench Count"},"accessible_bench_count_provided":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accessible Bench Count Provided"}},"type":"object","required":["context"],"title":"CheckBenchScopingInput"},"CheckBreakerConductorAmpacityMatchInput":{"properties":{"conductor_size":{"anyOf":[{"$ref":"#/components/schemas/ConductorSize"},{"type":"null"}]},"conductor_material":{"anyOf":[{"$ref":"#/components/schemas/ConductorMaterial"},{"type":"null"}]},"terminal_rating_class":{"anyOf":[{"$ref":"#/components/schemas/TerminalRatingClass"},{"type":"null"}]},"ocpd_rating_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Ocpd Rating Amps"},"is_part_of_multi_outlet_cord_and_plug_branch_circuit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Part Of Multi Outlet Cord And Plug Branch Circuit"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckBreakerConductorAmpacityMatchInput"},"CheckBusConfigurationBreakerCountInput":{"properties":{"bus_configuration":{"anyOf":[{"$ref":"#/components/schemas/BusConfiguration"},{"type":"null"}]},"circuit_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Circuit Count"},"breaker_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Breaker Count"}},"type":"object","title":"CheckBusConfigurationBreakerCountInput"},"CheckCableFaultAdequacyRequest":{"properties":{"cable_size":{"type":"string","title":"Cable Size"},"cable_material":{"type":"string","title":"Cable Material","default":"AL"},"available_fault_current_ka":{"type":"number","title":"Available Fault Current Ka","default":10.0},"fault_duration_sec":{"type":"number","title":"Fault Duration Sec","default":0.5}},"type":"object","required":["cable_size"],"title":"CheckCableFaultAdequacyRequest"},"CheckClearSpaceInput":{"properties":{"clear_space_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Space Slope Percent"},"adjacent_pedestrian_access_route_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adjacent Pedestrian Access Route Slope Percent"},"clear_space_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Space Width Inches"},"clear_space_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Space Length Inches"},"is_located_on_curb_ramp_run_or_flare":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Located On Curb Ramp Run Or Flare"},"adjoins_pedestrian_access_route_or_another_clear_space":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Adjoins Pedestrian Access Route Or Another Clear Space"},"is_confined_on_three_sides":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Confined On Three Sides"},"maneuvering_approach_type":{"anyOf":[{"$ref":"#/components/schemas/ManeuveringApproachType"},{"type":"null"}]},"confined_depth_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confined Depth Inches"},"maneuvering_clearance_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maneuvering Clearance Width Inches"},"relies_on_knee_toe_clearance_for_size":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Relies On Knee Toe Clearance For Size"},"toe_clearance_depth_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Toe Clearance Depth Inches"},"toe_clearance_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Toe Clearance Width Inches"},"knee_clearance_depth_at_9in_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Knee Clearance Depth At 9In Inches"},"knee_clearance_measurement_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Knee Clearance Measurement Height Inches"},"knee_clearance_depth_at_measurement_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Knee Clearance Depth At Measurement Height Inches"},"knee_clearance_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Knee Clearance Width Inches"}},"type":"object","title":"CheckClearSpaceInput"},"CheckCoolingCapacityMarginRequest":{"properties":{"demand_kw":{"type":"number","title":"Demand Kw"},"supply_units":{"items":{"$ref":"#/components/schemas/CoolingSupplyUnit"},"type":"array","title":"Supply Units"},"cooling_type":{"type":"string","title":"Cooling Type"},"capacity_kind":{"type":"string","title":"Capacity Kind","default":"nominal"}},"type":"object","required":["demand_kw","supply_units","cooling_type"],"title":"CheckCoolingCapacityMarginRequest"},"CheckCrosswalkInput":{"properties":{"has_pedestrian_signal":{"type":"boolean","title":"Has Pedestrian Signal","default":false},"crossing_distance_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crossing Distance Ft"},"pedestrian_clearance_time_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pedestrian Clearance Time Seconds"},"uses_passive_detection_with_automatic_clearance_adjustment":{"type":"boolean","title":"Uses Passive Detection With Automatic Clearance Adjustment","default":false},"walk_interval_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Walk Interval Seconds"},"clearance_calculated_to_refuge_island":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clearance Calculated To Refuge Island"},"refuge_island_push_button_or_passive_detection_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Refuge Island Push Button Or Passive Detection Provided"},"accessible_walk_indication_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Accessible Walk Indication Duration Seconds"},"pedestrian_signal_rests_in_walk":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pedestrian Signal Rests In Walk"},"at_roundabout":{"type":"boolean","title":"At Roundabout","default":false},"pedestrian_crossing_intended":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pedestrian Crossing Intended"},"pedestrian_circulation_path_attached_to_curb":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pedestrian Circulation Path Attached To Curb"},"roundabout_separation_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Roundabout Separation Width Inches"},"roundabout_vertical_edge_bottom_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Roundabout Vertical Edge Bottom Height Inches"},"at_multilane_roundabout_crosswalk":{"type":"boolean","title":"At Multilane Roundabout Crosswalk","default":false},"multilane_roundabout_crosswalk_treatment_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Multilane Roundabout Crosswalk Treatment Provided"},"at_multilane_channelized_turn_lane":{"type":"boolean","title":"At Multilane Channelized Turn Lane","default":false},"multilane_channelized_turn_lane_crosswalk_treatment_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Multilane Channelized Turn Lane Crosswalk Treatment Provided"}},"type":"object","title":"CheckCrosswalkInput"},"CheckCurbRampInput":{"properties":{"curb_ramp_type":{"$ref":"#/components/schemas/CurbRampType"},"running_slope_percent":{"type":"number","title":"Running Slope Percent"},"cross_slope_percent":{"type":"number","title":"Cross Slope Percent"},"ramp_length_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ramp Length Ft"},"clear_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Width Inches"},"is_on_shared_use_path":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is On Shared Use Path"},"shared_use_path_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shared Use Path Width Inches"},"landing_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Landing Width Inches"},"landing_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Landing Length Inches"},"landing_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Landing Slope Percent"},"clear_area_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Area Width Inches"},"clear_area_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Area Length Inches"},"clear_area_running_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Area Running Slope Percent"},"clear_area_cross_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Area Cross Slope Percent"},"flare_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Flare Slope Percent"},"gutter_grade_break_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gutter Grade Break Percent"},"gutter_transition_space_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gutter Transition Space Length Inches"},"gutter_transition_space_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gutter Transition Space Slope Percent"}},"type":"object","required":["curb_ramp_type","running_slope_percent","cross_slope_percent"],"title":"CheckCurbRampInput"},"CheckCurbRampPlacementInput":{"properties":{"crossing_context":{"$ref":"#/components/schemas/CrossingContext"},"crossing_prohibited":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Crossing Prohibited"},"separation_method_provided":{"anyOf":[{"$ref":"#/components/schemas/SeparationMethod"},{"type":"null"}]},"detectable_edge_bottom_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Detectable Edge Bottom Height Inches"},"crosswalk_count_at_corner":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crosswalk Count At Corner"},"single_spanning_blended_transition_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Single Spanning Blended Transition Provided"},"is_alteration":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Alteration"},"apex_curb_ramp_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Apex Curb Ramp Provided"},"ramps_or_transitions_provided_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ramps Or Transitions Provided Count"},"needed_to_connect":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Needed To Connect"},"ramp_or_transition_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ramp Or Transition Provided"},"pedestrian_access_route_crosses_curb":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pedestrian Access Route Crosses Curb"}},"type":"object","required":["crossing_context"],"title":"CheckCurbRampPlacementInput"},"CheckDer240vServiceImbalanceScreenInput":{"properties":{"resulting_imbalance_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Resulting Imbalance Amps"},"service_transformer_nameplate_rating_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Service Transformer Nameplate Rating Amps"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDer240vServiceImbalanceScreenInput"},"CheckDer240vServiceImbalanceScreenResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"standard_cited":{"type":"string","title":"Standard Cited"},"regulatory_status":{"$ref":"#/components/schemas/ugm_agent_harness__config__interconnection__regulatory_status__RegulatoryStatus"},"max_allowable_resulting_imbalance_amps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Allowable Resulting Imbalance Amps"}},"type":"object","required":["compliant","standard_cited","regulatory_status"],"title":"CheckDer240vServiceImbalanceScreenResult","description":"Adds `max_allowable_resulting_imbalance_amps`, exposing the ceiling this function already\ncomputes internally to decide compliant/violation -- previously only interpolated into the\nviolation string, never returned as its own field (gateway_core_integration_plan.md Part XIX/\nPart XX). Pure exposure: `None` when the check is skipped (an input was missing, so nothing\nwas computed), the real computed ceiling whenever both inputs are provided -- populated on\nboth pass and violation, not only on failure. Does not change what triggers pass/fail."},"CheckDerCeaseToEnergizeTimeInput":{"properties":{"measured_trip_time_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measured Trip Time Seconds"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerCeaseToEnergizeTimeInput"},"CheckDerFastTrack15PercentScreenInput":{"properties":{"proposed_der_capacity_kw":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Proposed Der Capacity Kw"},"existing_aggregate_generation_capacity_kw":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Existing Aggregate Generation Capacity Kw"},"line_section_peak_load_kw":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Line Section Peak Load Kw"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerFastTrack15PercentScreenInput"},"CheckDerFastTrack15PercentScreenResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"standard_cited":{"type":"string","title":"Standard Cited"},"regulatory_status":{"$ref":"#/components/schemas/ugm_agent_harness__config__interconnection__regulatory_status__RegulatoryStatus"},"max_allowable_aggregate_capacity_kw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Allowable Aggregate Capacity Kw"}},"type":"object","required":["compliant","standard_cited","regulatory_status"],"title":"CheckDerFastTrack15PercentScreenResult","description":"Adds `max_allowable_aggregate_capacity_kw`, exposing the ceiling this function already\ncomputes internally to decide compliant/violation -- previously only interpolated into the\nviolation string, never returned as its own field (gateway_core_integration_plan.md Part XIX/\nPart XX). Pure exposure: `None` when the check is skipped (an input was missing, so nothing\nwas computed), the real computed ceiling whenever all three inputs are provided -- populated\non both pass and violation, not only on failure. Does not change what triggers pass/fail."},"CheckDerFaultCurrentContributionScreenInput":{"properties":{"proposed_der_fault_current_contribution_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Proposed Der Fault Current Contribution Amps"},"existing_other_generation_fault_current_contribution_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Existing Other Generation Fault Current Contribution Amps"},"distribution_circuit_max_fault_current_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Distribution Circuit Max Fault Current Amps"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerFaultCurrentContributionScreenInput"},"CheckDerFaultCurrentContributionScreenResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"standard_cited":{"type":"string","title":"Standard Cited"},"regulatory_status":{"$ref":"#/components/schemas/ugm_agent_harness__config__interconnection__regulatory_status__RegulatoryStatus"},"max_allowable_fault_current_contribution_amps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Allowable Fault Current Contribution Amps"}},"type":"object","required":["compliant","standard_cited","regulatory_status"],"title":"CheckDerFaultCurrentContributionScreenResult","description":"Adds `max_allowable_fault_current_contribution_amps`, exposing the ceiling this function\nalready computes internally to decide compliant/violation -- previously only interpolated\ninto the violation string, never returned as its own field (gateway_core_integration_plan.md\nPart XIX/Part XX). Pure exposure: `None` when the check is skipped (an input was missing, so\nnothing was computed), the real computed ceiling whenever all three inputs are provided --\npopulated on both pass and violation, not only on failure. Does not change what triggers\npass/fail."},"CheckDerFrequencyRideThroughZoneInput":{"properties":{"zone":{"$ref":"#/components/schemas/FrequencyRideThroughZone"},"tested_ride_through_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tested Ride Through Seconds"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","required":["zone"],"title":"CheckDerFrequencyRideThroughZoneInput"},"CheckDerRestoreOutputTimingInput":{"properties":{"measured_restore_to_80pct_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measured Restore To 80Pct Seconds"},"dynamic_reactive_support_provided":{"type":"boolean","title":"Dynamic Reactive Support Provided","default":false},"measured_dynamic_reactive_support_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Measured Dynamic Reactive Support Duration Seconds"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerRestoreOutputTimingInput"},"CheckDerReturnToServiceDelayInput":{"properties":{"measured_delay_seconds":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Delay Seconds"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerReturnToServiceDelayInput"},"CheckDerRocofRideThroughInput":{"properties":{"category":{"$ref":"#/components/schemas/AbnormalOperatingPerformanceCategory"},"tested_rocof_ride_through_hz_per_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tested Rocof Ride Through Hz Per S"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","required":["category"],"title":"CheckDerRocofRideThroughInput"},"CheckDerShortCircuitInterruptingCapacityScreenInput":{"properties":{"resulting_fault_current_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Resulting Fault Current Amps"},"short_circuit_interrupting_capability_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Short Circuit Interrupting Capability Amps"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerShortCircuitInterruptingCapacityScreenInput"},"CheckDerShortCircuitInterruptingCapacityScreenResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"standard_cited":{"type":"string","title":"Standard Cited"},"regulatory_status":{"$ref":"#/components/schemas/ugm_agent_harness__config__interconnection__regulatory_status__RegulatoryStatus"},"max_allowable_resulting_fault_current_amps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Allowable Resulting Fault Current Amps"}},"type":"object","required":["compliant","standard_cited","regulatory_status"],"title":"CheckDerShortCircuitInterruptingCapacityScreenResult","description":"Adds `max_allowable_resulting_fault_current_amps`, exposing the ceiling this function\nalready computes internally to decide compliant/violation -- previously only interpolated\ninto the violation string, never returned as its own field (gateway_core_integration_plan.md\nPart XIX/Part XX). Pure exposure: `None` when the check is skipped (an input was missing, so\nnothing was computed), the real computed ceiling whenever both inputs are provided --\npopulated on both pass and violation, not only on failure. Does not change what triggers\npass/fail."},"CheckDerSinglePhaseSharedSecondaryScreenInput":{"properties":{"proposed_der_capacity_kw":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Proposed Der Capacity Kw"},"existing_aggregate_generation_on_shared_secondary_kw":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Existing Aggregate Generation On Shared Secondary Kw"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerSinglePhaseSharedSecondaryScreenInput"},"CheckDerTransientStability10mwScreenInput":{"properties":{"area_has_known_or_posted_transient_stability_limitations":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Area Has Known Or Posted Transient Stability Limitations"},"proposed_der_capacity_mw":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Proposed Der Capacity Mw"},"existing_aggregate_generation_mw":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Existing Aggregate Generation Mw"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerTransientStability10mwScreenInput"},"CheckDerVoltagePhaseJumpRideThroughInput":{"properties":{"tested_positive_sequence_phase_jump_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tested Positive Sequence Phase Jump Deg"},"tested_individual_phase_phase_jump_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tested Individual Phase Phase Jump Deg"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerVoltagePhaseJumpRideThroughInput"},"CheckDerVoltageRideThroughZoneInput":{"properties":{"category":{"$ref":"#/components/schemas/AbnormalOperatingPerformanceCategory"},"zone":{"$ref":"#/components/schemas/VoltageRideThroughZone"},"tested_ride_through_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tested Ride Through Seconds"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","required":["category","zone"],"title":"CheckDerVoltageRideThroughZoneInput"},"CheckDerVoltageUnbalanceRideThroughInput":{"properties":{"tested_ride_through_duration_at_5pct_v2_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tested Ride Through Duration At 5Pct V2 Seconds"},"tested_ride_through_duration_at_3pct_v2_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tested Ride Through Duration At 3Pct V2 Seconds"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckDerVoltageUnbalanceRideThroughInput"},"CheckDetectableWarningInput":{"properties":{"application_context":{"$ref":"#/components/schemas/DetectableWarningApplicationContext"},"dome_base_diameter_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dome Base Diameter Inches"},"dome_top_diameter_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dome Top Diameter Inches"},"dome_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dome Height Inches"},"dome_center_to_center_spacing_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dome Center To Center Spacing Inches"},"dome_base_to_base_spacing_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dome Base To Base Spacing Inches"},"has_visual_contrast_with_adjacent_surface":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Visual Contrast With Adjacent Surface"},"surface_extent_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Extent Inches"},"surface_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Surface Width Inches"},"full_width_reference_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Full Width Reference Inches"},"has_curb":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Curb"},"installed_offset_from_curb_or_edge_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Installed Offset From Curb Or Edge Inches"},"grade_break_distance_from_curb_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Grade Break Distance From Curb Inches"},"placed_at_bottom_grade_break_on_ramp_run":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Placed At Bottom Grade Break On Ramp Run"},"dome_free_separation_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dome Free Separation Inches"},"distance_from_rail_centerline_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Distance From Rail Centerline Inches"}},"type":"object","required":["application_context"],"title":"CheckDetectableWarningInput"},"CheckDwsScopingInput":{"properties":{"location_type":{"$ref":"#/components/schemas/DwsLocationType"},"detectable_warning_surface_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Detectable Warning Surface Provided"},"exclusively_connects_loading_zone_or_parking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Exclusively Connects Loading Zone Or Parking"},"is_cut_through":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Cut Through"},"is_within_street_at_crosswalk":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Within Street At Crosswalk"},"protected_by_screens_or_guards":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Protected By Screens Or Guards"},"has_yield_stop_or_signal_control":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Yield Stop Or Signal Control"}},"type":"object","required":["location_type"],"title":"CheckDwsScopingInput"},"CheckEquipmentGroundingConductorSizeInput":{"properties":{"ocpd_rating_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Ocpd Rating Amps"},"conductor_material":{"anyOf":[{"$ref":"#/components/schemas/ConductorMaterial"},{"type":"null"}]},"installed_egc_size":{"anyOf":[{"$ref":"#/components/schemas/ConductorSize"},{"type":"null"}]},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckEquipmentGroundingConductorSizeInput"},"CheckEquipmentInterruptingRatingInput":{"properties":{"available_fault_current_amps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Fault Current Amps"},"equipment_interrupting_rating_amps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Equipment Interrupting Rating Amps"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckEquipmentInterruptingRatingInput"},"CheckGfciAfciRequiredByLocationInput":{"properties":{"is_dwelling_unit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Dwelling Unit"},"is_dormitory_unit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Dormitory Unit"},"is_guest_room_or_suite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Guest Room Or Suite"},"location":{"anyOf":[{"$ref":"#/components/schemas/ElectricalLocation"},{"type":"null"}]},"gfci_installed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Gfci Installed"},"afci_installed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Afci Installed"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckGfciAfciRequiredByLocationInput"},"CheckHandrailInput":{"properties":{"provided_on_both_sides":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Provided On Both Sides"},"is_continuous_within_run":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Continuous Within Run"},"has_switchback_or_dogleg":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Switchback Or Dogleg"},"is_continuous_between_switchback_or_dogleg_runs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Continuous Between Switchback Or Dogleg Runs"},"height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Height Inches"},"clearance_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clearance Inches"},"is_obstructed_along_top_or_sides":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Obstructed Along Top Or Sides"},"bottom_obstruction_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bottom Obstruction Percent"},"has_horizontal_projections":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Horizontal Projections"},"horizontal_projection_clearance_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Horizontal Projection Clearance Inches"},"cross_section_type":{"anyOf":[{"$ref":"#/components/schemas/CrossSectionType"},{"type":"null"}]},"is_expansion_joint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Expansion Joint"},"expansion_joint_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expansion Joint Length Inches"},"outside_diameter_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Outside Diameter Inches"},"perimeter_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Perimeter Inches"},"cross_section_dimension_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cross Section Dimension Inches"},"surface_free_of_sharp_or_abrasive_elements":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Surface Free Of Sharp Or Abrasive Elements"},"has_rounded_edges":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Rounded Edges"},"rotates_in_fitting":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rotates In Fitting"},"context":{"anyOf":[{"$ref":"#/components/schemas/HandrailContext"},{"type":"null"}]},"top_extension_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top Extension Inches"},"bottom_extension_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bottom Extension Inches"},"tread_depth_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tread Depth Inches"},"is_continuous_at_inside_switchback_or_dogleg_turn":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Continuous At Inside Switchback Or Dogleg Turn"},"is_alteration":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Alteration"},"extension_limited_by_par_clear_width":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Extension Limited By Par Clear Width"},"extension_encroaches_roadway_or_pedestrian_circulation_path":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Extension Encroaches Roadway Or Pedestrian Circulation Path"}},"type":"object","title":"CheckHandrailInput"},"CheckInletAirTemperatureEnvelopeRequest":{"properties":{"supply_air_temperature_c":{"type":"number","title":"Supply Air Temperature C"},"temperature_rise_k":{"type":"number","title":"Temperature Rise K"},"envelope_class":{"type":"string","title":"Envelope Class"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["supply_air_temperature_c","temperature_rise_k","envelope_class","source_ref"],"title":"CheckInletAirTemperatureEnvelopeRequest"},"CheckJamRatioRequest":{"properties":{"conduit_trade_size_in":{"type":"number","title":"Conduit Trade Size In"},"conduit_material":{"type":"string","title":"Conduit Material","default":"PVC_40"},"cable_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cable Type"},"cable_od_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cable Od In"}},"type":"object","required":["conduit_trade_size_in"],"title":"CheckJamRatioRequest"},"CheckOnStreetParkingScopingInput":{"properties":{"marked_space_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Marked Space Count"},"unmarked_designated_length_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unmarked Designated Length Ft"},"residential_exclusive_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Residential Exclusive Count"},"commercial_or_law_enforcement_exclusive_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Commercial Or Law Enforcement Exclusive Count"},"is_alteration":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Alteration"},"accessible_spaces_provided":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accessible Spaces Provided"}},"type":"object","title":"CheckOnStreetParkingScopingInput"},"CheckOperablePartsInput":{"properties":{"approach_type":{"$ref":"#/components/schemas/ApproachType"},"reach_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reach Height Inches"},"is_obstructed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Obstructed"},"obstruction_depth_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Obstruction Depth Inches"},"obstruction_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Obstruction Height Inches"},"clear_space_complies_with_r404":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clear Space Complies With R404"},"operable_with_one_hand":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Operable With One Hand"},"requires_tight_grasping_pinching_or_twisting":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Requires Tight Grasping Pinching Or Twisting"},"operating_force_pounds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Operating Force Pounds"}},"type":"object","required":["approach_type"],"title":"CheckOperablePartsInput"},"CheckOverpassUnderpassAccessInput":{"properties":{"approach_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Approach Slope Percent"},"is_pedestrian_or_pedestrian_bicycle_only_structure":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Pedestrian Or Pedestrian Bicycle Only Structure"},"accessible_means_provided":{"anyOf":[{"$ref":"#/components/schemas/AccessibleMeansType"},{"type":"null"}]},"is_alteration":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Alteration"},"elevator_unlocked_and_independently_usable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Elevator Unlocked And Independently Usable"}},"type":"object","title":"CheckOverpassUnderpassAccessInput"},"CheckPadMountClearancesRequest":{"properties":{"equipment_type":{"type":"string","title":"Equipment Type","default":"single_phase_transformer"},"pad_length_ft":{"type":"number","title":"Pad Length Ft","default":8.0},"pad_width_ft":{"type":"number","title":"Pad Width Ft","default":8.0},"front_available_ft":{"type":"number","title":"Front Available Ft","default":12.0},"side_available_ft":{"type":"number","title":"Side Available Ft","default":5.0},"rear_available_ft":{"type":"number","title":"Rear Available Ft","default":4.0}},"type":"object","title":"CheckPadMountClearancesRequest"},"CheckPanelSpaceRequirementsInput":{"properties":{"working_space_used_for_storage":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Working Space Used For Storage"},"foreign_systems_present_in_working_space":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Foreign Systems Present In Working Space"},"number_of_entrances":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Number Of Entrances"},"entrance_width_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Entrance Width Inches"},"entrance_height_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Entrance Height Inches"},"equipment_ampere_rating":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Equipment Ampere Rating"},"equipment_width_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Equipment Width Inches"},"has_continuous_unobstructed_egress":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Continuous Unobstructed Egress"},"working_space_depth_is_double_minimum":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Working Space Depth Is Double Minimum"},"equipment_doors_impede_entry_or_egress":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Equipment Doors Impede Entry Or Egress"},"is_indoor":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Indoor"},"illumination_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Illumination Provided"},"illumination_controlled_by_automatic_means_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Illumination Controlled By Automatic Means Only"},"foreign_systems_present_in_dedicated_equipment_space":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Foreign Systems Present In Dedicated Equipment Space"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckPanelSpaceRequirementsInput"},"CheckPanelWorkingClearanceInput":{"properties":{"condition":{"anyOf":[{"$ref":"#/components/schemas/WorkingSpaceCondition"},{"type":"null"}]},"voltage_to_ground":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Voltage To Ground"},"measured_depth_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Depth Inches"},"measured_width_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Width Inches"},"equipment_width_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Equipment Width Inches"},"measured_height_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Height Inches"},"equipment_height_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Equipment Height Inches"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckPanelWorkingClearanceInput"},"CheckPanelboardRatingAndScheduleInput":{"properties":{"panelboard_rating_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Panelboard Rating Amps"},"supply_ocpd_rating_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Supply Ocpd Rating Amps"},"is_service_equipment_with_six_or_fewer_disconnects":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Service Equipment With Six Or Fewer Disconnects"},"uses_split_bus_design":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Uses Split Bus Design"},"total_overcurrent_devices_by_pole_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Total Overcurrent Devices By Pole Count"},"circuit_directory_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Circuit Directory Present"},"all_circuits_legibly_and_specifically_identified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"All Circuits Legibly And Specifically Identified"},"any_circuit_identified_by_transient_occupancy_condition":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Any Circuit Identified By Transient Occupancy Condition"},"has_unmarked_spare_positions":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Unmarked Spare Positions"},"multiple_grounded_conductors_on_one_terminal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Multiple Grounded Conductors On One Terminal"},"is_parallel_conductor_circuit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Parallel Conductor Circuit"},"terminal_listed_for_multiple_conductors":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Terminal Listed For Multiple Conductors"},"busbars_free_from_physical_damage_and_firmly_supported":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Busbars Free From Physical Damage And Firmly Supported"},"is_three_phase_ac_bus":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Three Phase Ac Bus"},"phase_arrangement_is_a_b_c":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Phase Arrangement Is A B C"},"is_three_phase_four_wire_delta_system":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Three Phase Four Wire Delta System"},"high_leg_marked_as_b_phase":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"High Leg Marked As B Phase"},"high_leg_caution_label_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"High Leg Caution Label Present"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckPanelboardRatingAndScheduleInput"},"CheckParkingAccessAisleInput":{"properties":{"parking_type":{"$ref":"#/components/schemas/ParkingType"},"space_length_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Space Length Ft"},"space_width_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Space Width Ft"},"dimension_exception_applies":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dimension Exception Applies"},"space_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Space Width Inches"},"space_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Space Length Inches"},"access_aisle_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Access Aisle Width Inches"},"access_aisle_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Access Aisle Length Inches"},"access_aisle_marked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Access Aisle Marked"},"access_aisle_same_level_as_space":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Access Aisle Same Level As Space"},"access_aisle_encroaches_traveled_way":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Access Aisle Encroaches Traveled Way"},"space_encroaches_traveled_way":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Space Encroaches Traveled Way"},"clearance_zone_obstructed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clearance Zone Obstructed"},"surface_has_level_changes":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Surface Has Level Changes"},"sign_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Sign Height Inches"}},"type":"object","required":["parking_type"],"title":"CheckParkingAccessAisleInput"},"CheckPassengerLoadingZoneInput":{"properties":{"pull_up_space_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pull Up Space Width Inches"},"pull_up_space_length_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pull Up Space Length Ft"},"access_aisle_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Access Aisle Width Inches"},"access_aisle_length_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Access Aisle Length Ft"},"access_aisle_same_level_as_pull_up_space":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Access Aisle Same Level As Pull Up Space"},"access_aisle_encroaches_traveled_way":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Access Aisle Encroaches Traveled Way"},"clearance_zone_obstructed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Clearance Zone Obstructed"},"access_aisle_marked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Access Aisle Marked"},"surface_has_level_changes":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Surface Has Level Changes"}},"type":"object","title":"CheckPassengerLoadingZoneInput"},"CheckPassengerLoadingZoneScopingInput":{"properties":{"total_loading_zone_length_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Loading Zone Length Ft"},"accessible_plz_count_provided":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accessible Plz Count Provided"}},"type":"object","title":"CheckPassengerLoadingZoneScopingInput"},"CheckPedestrianPushbuttonInput":{"properties":{"operable_parts_comply_with_r403":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Operable Parts Comply With R403"},"activates_accessible_pedestrian_signal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Activates Accessible Pedestrian Signal"},"extended_press_provides_additional_crossing_time":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Extended Press Provides Additional Crossing Time"},"extended_press_sign_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Extended Press Sign Provided"},"distance_from_curb_ramp_or_crosswalk_edge_feet":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Distance From Curb Ramp Or Crosswalk Edge Feet"},"distance_from_curb_or_pavement_edge_feet":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Distance From Curb Or Pavement Edge Feet"},"two_push_buttons_on_same_corner":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Two Push Buttons On Same Corner"},"separation_between_push_buttons_feet":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Separation Between Push Buttons Feet"},"is_alteration":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Alteration"},"ten_foot_separation_technically_infeasible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ten Foot Separation Technically Infeasible"},"push_button_information_message_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Push Button Information Message Provided"},"push_button_face_parallel_to_crosswalk":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Push Button Face Parallel To Crosswalk"},"audible_or_vibrotactile_indication_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Audible Or Vibrotactile Indication Provided"},"locator_tone_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Locator Tone Duration Seconds"},"locator_tone_repeat_interval_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Locator Tone Repeat Interval Seconds"},"locator_tone_audible_distance_feet":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Locator Tone Audible Distance Feet"},"locator_tone_volume_above_ambient_dba":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Locator Tone Volume Above Ambient Dba"},"locator_tone_max_auto_adjusted_volume_dba":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Locator Tone Max Auto Adjusted Volume Dba"},"tactile_arrow_high_contrast":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Tactile Arrow High Contrast"},"tactile_arrow_aligned_parallel_to_crosswalk":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Tactile Arrow Aligned Parallel To Crosswalk"}},"type":"object","title":"CheckPedestrianPushbuttonInput"},"CheckPedestrianSignalScopingInput":{"properties":{"device_type":{"$ref":"#/components/schemas/SignalDeviceType"},"activation_method":{"anyOf":[{"$ref":"#/components/schemas/ActivationMethod"},{"type":"null"}]},"pushbutton_complies_with_r307":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pushbutton Complies With R307"},"walk_indication_complies_with_r308":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Walk Indication Complies With R308"},"locator_tone_complies_with_r307_7":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Locator Tone Complies With R307 7"}},"type":"object","required":["device_type"],"title":"CheckPedestrianSignalScopingInput"},"CheckPoiFaultContributionAdequacyInput":{"properties":{"available_fault_current_amps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Fault Current Amps"},"equipment_interrupting_rating_amps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Equipment Interrupting Rating Amps"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"},"equipment_ownership":{"$ref":"#/components/schemas/EquipmentOwnership","default":"unknown"}},"type":"object","title":"CheckPoiFaultContributionAdequacyInput"},"CheckProtrudingObjectsInput":{"properties":{"mounting_type":{"$ref":"#/components/schemas/MountingType"},"leading_edge_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Leading Edge Height Inches"},"horizontal_protrusion_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Horizontal Protrusion Inches"},"is_handrail":{"type":"boolean","title":"Is Handrail","default":false},"clear_distance_between_posts_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Distance Between Posts Inches"},"lowest_edge_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lowest Edge Height Inches"},"barrier_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Barrier Provided"},"barrier_lowest_edge_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Barrier Lowest Edge Height Inches"},"vertical_clearance_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vertical Clearance Inches"},"guard_or_barrier_provided":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Guard Or Barrier Provided"},"guard_lowest_edge_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Guard Lowest Edge Height Inches"},"resulting_clear_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Resulting Clear Width Inches"},"required_clear_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Required Clear Width Inches"}},"type":"object","required":["mounting_type"],"title":"CheckProtrudingObjectsInput"},"CheckRampInput":{"properties":{"running_slope_percent":{"type":"number","title":"Running Slope Percent"},"cross_slope_percent":{"type":"number","title":"Cross Slope Percent"},"clear_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Width Inches"},"serves_building_entrance_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Serves Building Entrance Only"},"rise_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rise Inches"},"handrails_comply_with_r409":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Handrails Comply With R409"},"landing_running_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Landing Running Slope Percent"},"landing_cross_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Landing Cross Slope Percent"},"landing_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Landing Width Inches"},"widest_connecting_ramp_run_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Widest Connecting Ramp Run Width Inches"},"landing_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Landing Length Inches"},"is_direction_change_landing":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Direction Change Landing"},"edge_protection_exception_applies":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Edge Protection Exception Applies"},"edge_protection_type":{"anyOf":[{"$ref":"#/components/schemas/EdgeProtectionType"},{"type":"null"}]},"extended_surface_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Extended Surface Inches"},"curb_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Curb Height Inches"},"barrier_prevents_sphere_passage":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Barrier Prevents Sphere Passage"}},"type":"object","required":["running_slope_percent","cross_slope_percent"],"title":"CheckRampInput"},"CheckReceptacleOutletSpacingInput":{"properties":{"is_dwelling_unit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Dwelling Unit"},"wall_space_width_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Wall Space Width Inches"},"wall_space_farthest_point_from_outlet_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Wall Space Farthest Point From Outlet Inches"},"has_countertop_or_work_surface":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Countertop Or Work Surface"},"countertop_farthest_point_from_receptacle_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Countertop Farthest Point From Receptacle Inches"},"countertop_receptacle_height_relative_to_surface_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Countertop Receptacle Height Relative To Surface Inches"},"is_island_or_peninsula":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Island Or Peninsula"},"island_or_peninsula_long_dimension_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Island Or Peninsula Long Dimension Inches"},"island_or_peninsula_short_dimension_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Island Or Peninsula Short Dimension Inches"},"island_or_peninsula_has_receptacle":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Island Or Peninsula Has Receptacle"},"island_or_peninsula_has_provision_for_future_receptacle":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Island Or Peninsula Has Provision For Future Receptacle"},"is_bathroom":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Bathroom"},"bathroom_basin_to_receptacle_distance_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Bathroom Basin To Receptacle Distance Inches"},"is_multifamily_with_individual_grade_entrance":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Multifamily With Individual Grade Entrance"},"front_exterior_has_accessible_receptacle":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Front Exterior Has Accessible Receptacle"},"back_exterior_has_accessible_receptacle":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Back Exterior Has Accessible Receptacle"},"outdoor_receptacle_height_above_grade_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Outdoor Receptacle Height Above Grade Inches"},"has_laundry_area":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Laundry Area"},"laundry_appliance_to_receptacle_distance_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Laundry Appliance To Receptacle Distance Inches"},"shared_multifamily_laundry_facility_on_premises":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Shared Multifamily Laundry Facility On Premises"},"laundry_equipment_not_installed_or_permitted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Laundry Equipment Not Installed Or Permitted"},"has_basement":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Basement"},"basement_receptacle_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Basement Receptacle Count"},"has_garage_with_electric_power":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Garage With Electric Power"},"garage_vehicle_bay_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Garage Vehicle Bay Count"},"garage_receptacle_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Garage Receptacle Count"},"garage_vehicle_bay_receptacle_height_above_floor_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Garage Vehicle Bay Receptacle Height Above Floor Inches"},"is_hallway":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Hallway"},"hallway_length_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Hallway Length Inches"},"hallway_has_receptacle":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hallway Has Receptacle"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckReceptacleOutletSpacingInput"},"CheckReceptacleRequirementsInput":{"properties":{"is_grounding_type":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Grounding Type"},"connected_to_equipment_grounding_conductor":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Connected To Equipment Grounding Conductor"},"location_exposure":{"anyOf":[{"$ref":"#/components/schemas/LocationExposure"},{"type":"null"}]},"is_weather_resistant_listed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Weather Resistant Listed"},"has_in_use_weatherproof_cover":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has In Use Weatherproof Cover"},"outlet_box_hood_used":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Outlet Box Hood Used"},"outlet_box_hood_extra_duty_listed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Outlet Box Hood Extra Duty Listed"},"has_weatherproof_cover_when_not_in_use":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Weatherproof Cover When Not In Use"},"is_near_bathtub_or_shower":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Near Bathtub Or Shower"},"horizontal_distance_from_bathtub_or_shower_edge_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Horizontal Distance From Bathtub Or Shower Edge Inches"},"height_above_bathtub_rim_or_shower_threshold_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Height Above Bathtub Rim Or Shower Threshold Inches"},"meets_pool_spa_standards_680_73":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Meets Pool Spa Standards 680 73"},"is_farthest_wall_receptacle_in_undersized_bathroom":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Farthest Wall Receptacle In Undersized Bathroom"},"is_weight_supporting_ceiling_receptacle_for_listed_luminaire":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Weight Supporting Ceiling Receptacle For Listed Luminaire"},"is_dwelling_unit_toilet_or_bidet_seat_receptacle":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Dwelling Unit Toilet Or Bidet Seat Receptacle"},"occupancy_category":{"anyOf":[{"$ref":"#/components/schemas/TamperResistantOccupancyCategory"},{"type":"null"}]},"is_tamper_resistant_listed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Tamper Resistant Listed"},"mounting_height_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Mounting Height Inches"},"is_part_of_luminaire_or_factory_installed_appliance":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Part Of Luminaire Or Factory Installed Appliance"},"is_within_dedicated_space_of_permanently_installed_appliance":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Within Dedicated Space Of Permanently Installed Appliance"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckReceptacleRequirementsInput"},"CheckServiceDisconnectRequirementsInput":{"properties":{"number_of_service_disconnects":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Number Of Service Disconnects"},"each_disconnect_in_individual_enclosure":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Each Disconnect In Individual Enclosure"},"installation_category":{"anyOf":[{"$ref":"#/components/schemas/ServiceInstallationCategory"},{"type":"null"}]},"service_disconnect_rating_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Service Disconnect Rating Amps"},"service_conductor_ampacity_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Service Conductor Ampacity Amps"},"service_overcurrent_device_rating_amps":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Service Overcurrent Device Rating Amps"},"is_solidly_grounded_wye_system":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Solidly Grounded Wye System"},"system_voltage_to_ground":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"System Voltage To Ground"},"system_voltage_phase_to_phase":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"System Voltage Phase To Phase"},"gfpe_installed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Gfpe Installed"},"is_continuous_industrial_process_with_nonorderly_shutdown_hazard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Continuous Industrial Process With Nonorderly Shutdown Hazard"},"service_disconnect_location_readily_accessible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Service Disconnect Location Readily Accessible"},"service_disconnect_located_in_bathroom":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Service Disconnect Located In Bathroom"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckServiceDisconnectRequirementsInput"},"CheckSidewalkSlopeInput":{"properties":{"cross_slope_percent":{"type":"number","title":"Cross Slope Percent"},"running_slope_percent":{"type":"number","title":"Running Slope Percent"},"segment_type":{"$ref":"#/components/schemas/SegmentType"},"adjacent_roadway_grade_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Adjacent Roadway Grade Percent"},"clear_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Width Inches"},"is_median_or_refuge_island":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Median Or Refuge Island"},"is_on_shared_use_path":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is On Shared Use Path"},"shared_use_path_full_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shared Use Path Full Width Inches"},"crosswalk_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crosswalk Width Inches"},"is_near_obstruction":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Near Obstruction"}},"type":"object","required":["cross_slope_percent","running_slope_percent","segment_type"],"title":"CheckSidewalkSlopeInput"},"CheckSignCharactersInput":{"properties":{"has_nonglare_finish":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Nonglare Finish"},"has_light_dark_contrast_with_background":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Light Dark Contrast With Background"},"uses_permitted_case":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Uses Permitted Case"},"is_conventional_style":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Conventional Style"},"uppercase_o_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Uppercase O Width Inches"},"uppercase_i_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Uppercase I Height Inches"},"character_mounting_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Character Mounting Height Inches"},"horizontal_viewing_distance_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Horizontal Viewing Distance Inches"},"character_height_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Character Height Inches"},"stroke_thickness_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Stroke Thickness Inches"},"character_spacing_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Character Spacing Inches"},"line_spacing_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Line Spacing Inches"}},"type":"object","title":"CheckSignCharactersInput"},"CheckSignScopingInput":{"properties":{"is_pedestrian_or_shared_use_path_sign":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Pedestrian Or Shared Use Path Sign"},"is_transit_schedule_timetable_or_map":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Transit Schedule Timetable Or Map"},"is_mounted_on_or_incorporated_into_pushbutton":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Mounted On Or Incorporated Into Pushbutton"},"complies_with_r410":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Complies With R410"}},"type":"object","title":"CheckSignScopingInput"},"CheckSignalIndicationInput":{"properties":{"has_audible_walk_indication":{"type":"boolean","title":"Has Audible Walk Indication"},"has_vibrotactile_walk_indication":{"type":"boolean","title":"Has Vibrotactile Walk Indication"},"active_only_during_walk_interval":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active Only During Walk Interval"},"audible_from_beginning_of_crosswalk":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Audible From Beginning Of Crosswalk"},"reverts_to_locator_tone_during_change_interval":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reverts To Locator Tone During Change Interval"},"is_single_crossing":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Single Crossing"},"other_signal_separation_feet":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Other Signal Separation Feet"},"is_alteration":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Alteration"},"ten_foot_separation_technically_infeasible":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ten Foot Separation Technically Infeasible"},"audible_indication_type":{"anyOf":[{"$ref":"#/components/schemas/AudibleIndicationType"},{"type":"null"}]},"percussive_tone_ticks_per_second":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percussive Tone Ticks Per Second"},"percussive_tone_dominant_frequency_hz":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percussive Tone Dominant Frequency Hz"},"speech_message_follows_required_pattern":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Speech Message Follows Required Pattern"},"audible_volume_above_ambient_dba":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Audible Volume Above Ambient Dba"},"audible_beaconing_active_via_extended_press":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Audible Beaconing Active Via Extended Press"},"automatic_volume_adjustment_max_dba":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Automatic Volume Adjustment Max Dba"}},"type":"object","required":["has_audible_walk_indication","has_vibrotactile_walk_indication"],"title":"CheckSignalIndicationInput"},"CheckStairsInput":{"properties":{"riser_height_inches":{"type":"number","title":"Riser Height Inches"},"tread_depth_inches":{"type":"number","title":"Tread Depth Inches"},"has_open_risers":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Open Risers"},"has_abrupt_level_change":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Abrupt Level Change"},"tread_slope_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tread Slope Percent"},"nosing_radius_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nosing Radius Inches"},"nosing_projects_beyond_riser":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Nosing Projects Beyond Riser"},"nosing_underside_curved_or_beveled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Nosing Underside Curved Or Beveled"},"nosing_projection_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nosing Projection Inches"},"riser_slope_under_tread_degrees":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Riser Slope Under Tread Degrees"},"has_visual_contrast_stripe":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Visual Contrast Stripe"},"stripe_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Stripe Width Inches"},"stripe_contrasts_visually":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Stripe Contrasts Visually"},"handrails_comply_with_r409":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Handrails Comply With R409"}},"type":"object","required":["riser_height_inches","tread_depth_inches"],"title":"CheckStairsInput"},"CheckStreetFurnitureScopingInput":{"properties":{"furniture_type":{"$ref":"#/components/schemas/StreetFurnitureType"},"total_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Count"},"accessible_count_provided":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accessible Count Provided"}},"type":"object","required":["furniture_type"],"title":"CheckStreetFurnitureScopingInput"},"CheckSubstationAirSwitchMetalToMetalClearanceInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_metal_to_metal_clearance_in":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Metal To Metal Clearance In"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationAirSwitchMetalToMetalClearanceInput"},"CheckSubstationEmergencyLightingInput":{"properties":{"is_attended_station":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Attended Station"},"has_emergency_illumination_source_with_automatic_initiation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Emergency Illumination Source With Automatic Initiation"},"measured_exit_path_illuminance_fc":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Exit Path Illuminance Fc"},"emergency_lighting_duration_hours":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Emergency Lighting Duration Hours"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationEmergencyLightingInput"},"CheckSubstationEquipmentGroundClearanceInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_ground_clearance_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Ground Clearance Ft"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationEquipmentGroundClearanceInput"},"CheckSubstationExitRequirementsInput":{"properties":{"has_means_of_exit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Means Of Exit"},"exit_clear_of_obstructions":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Exit Clear Of Obstructions"},"second_exit_required_by_layout":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Second Exit Required By Layout"},"second_exit_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Second Exit Present"},"exit_door_exception_applies":{"type":"boolean","title":"Exit Door Exception Applies","default":false},"exit_door_swings_out":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Exit Door Swings Out"},"exit_door_has_panic_hardware":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Exit Door Has Panic Hardware"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationExitRequirementsInput"},"CheckSubstationFenceClearanceInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"clearance_to_live_parts_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Clearance To Live Parts Ft"},"fence_has_openings":{"type":"boolean","title":"Fence Has Openings","default":true},"is_internal_fence":{"type":"boolean","title":"Is Internal Fence","default":false},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationFenceClearanceInput"},"CheckSubstationFenceGroundingBondingCompletenessInput":{"properties":{"fence_is_metallic":{"type":"boolean","title":"Fence Is Metallic","default":true},"has_gate_or_opening":{"type":"boolean","title":"Has Gate Or Opening","default":true},"fence_grounded_at_each_gate_side":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fence Grounded At Each Gate Side"},"gate_bonded_to_grounding_system":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Gate Bonded To Grounding System"},"nonconducting_fence_section_at_opening":{"type":"boolean","title":"Nonconducting Fence Section At Opening","default":false},"buried_bonding_jumper_installed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Buried Bonding Jumper Installed"},"has_barbed_wire":{"type":"boolean","title":"Has Barbed Wire","default":false},"barbed_wire_bonded_to_grounding_system":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Barbed Wire Bonded To Grounding System"},"fence_posts_conducting":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fence Posts Conducting"},"conducting_posts_connected_to_grounding_conductor":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Conducting Posts Connected To Grounding Conductor"},"nonconducting_posts_mesh_bonded_at_grounding_points":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Nonconducting Posts Mesh Bonded At Grounding Points"},"nonconducting_posts_barbed_wire_bonded_at_grounding_points":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Nonconducting Posts Barbed Wire Bonded At Grounding Points"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationFenceGroundingBondingCompletenessInput"},"CheckSubstationFenceHeightInput":{"properties":{"fence_height_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Fence Height Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationFenceHeightInput"},"CheckSubstationFireExtinguishingEquipmentInput":{"properties":{"fire_extinguishing_equipment_present_and_approved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fire Extinguishing Equipment Present And Approved"},"conveniently_located":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Conveniently Located"},"conspicuously_marked":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Conspicuously Marked"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationFireExtinguishingEquipmentInput"},"CheckSubstationFloorPassagewaySafetyInput":{"properties":{"passageway_unobstructed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Passageway Unobstructed"},"headroom_requirement_practical":{"type":"boolean","title":"Headroom Requirement Practical","default":true},"measured_passageway_headroom_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Passageway Headroom Ft"},"has_uncovered_floor_opening":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Uncovered Floor Opening"},"floor_opening_railing_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Floor Opening Railing Present"},"platform_or_walkway_height_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Platform Or Walkway Height Ft"},"platform_or_walkway_railing_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Platform Or Walkway Railing Present"},"stair_riser_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Stair Riser Count"},"handrail_present":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Handrail Present"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationFloorPassagewaySafetyInput"},"CheckSubstationHornGapSwitchSpacingInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_phase_spacing_in":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Phase Spacing In"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationHornGapSwitchSpacingInput"},"CheckSubstationIlluminationLevelsInput":{"properties":{"measured_general_horizontal_illuminance_fc":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured General Horizontal Illuminance Fc"},"measured_vertical_illuminance_on_disconnects_fc":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Vertical Illuminance On Disconnects Fc"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationIlluminationLevelsInput"},"CheckSubstationInsulatorCantileverStrengthInput":{"properties":{"required_cantilever_strength_lbs":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Required Cantilever Strength Lbs"},"rated_cantilever_strength_lbs":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Rated Cantilever Strength Lbs"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationInsulatorCantileverStrengthInput"},"CheckSubstationLightingAndReceptacleInstallationInput":{"properties":{"fixture_and_receptacle_arrangement_avoids_cord_proximity_to_live_parts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fixture And Receptacle Arrangement Avoids Cord Proximity To Live Parts"},"lighting_controlled_and_serviced_from_safely_accessible_locations":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Lighting Controlled And Serviced From Safely Accessible Locations"},"portable_conductors_use_single_operation_all_pole_disconnect_plugs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Portable Conductors Use Single Operation All Pole Disconnect Plugs"},"has_single_phase_ac_branch_circuit_receptacles":{"type":"boolean","title":"Has Single Phase Ac Branch Circuit Receptacles","default":true},"single_phase_ac_branch_circuit_receptacles_are_grounding_type":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Single Phase Ac Branch Circuit Receptacles Are Grounding Type"},"has_differing_circuit_type_receptacles_at_same_premises":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Differing Circuit Type Receptacles At Same Premises"},"differing_circuit_type_receptacle_plugs_are_non_interchangeable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Differing Circuit Type Receptacle Plugs Are Non Interchangeable"},"has_120v_permanent_receptacles_in_damp_or_wet_location":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has 120V Permanent Receptacles In Damp Or Wet Location"},"damp_or_wet_location_receptacles_gfi_or_tested_grounded_circuit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Damp Or Wet Location Receptacles Gfi Or Tested Grounded Circuit"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationLightingAndReceptacleInstallationInput"},"CheckSubstationRigidBusGroundedPartsClearanceInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_grounded_parts_clearance_in":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Grounded Parts Clearance In"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationRigidBusGroundedPartsClearanceInput"},"CheckSubstationRigidBusMetalToMetalClearanceInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_metal_to_metal_clearance_in":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Metal To Metal Clearance In"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationRigidBusMetalToMetalClearanceInput"},"CheckSubstationRigidBusPhaseSpacingInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_phase_spacing_in":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Phase Spacing In"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationRigidBusPhaseSpacingInput"},"CheckSubstationRoadwayOverheadClearanceInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_roadway_clearance_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Roadway Clearance Ft"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationRoadwayOverheadClearanceInput"},"CheckSubstationSafetySignPlacementInput":{"properties":{"has_perimeter_fence":{"type":"boolean","title":"Has Perimeter Fence","default":true},"safety_sign_at_each_entrance":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Safety Sign At Each Entrance"},"safety_sign_on_each_side_of_fenced_enclosure":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Safety Sign On Each Side Of Fenced Enclosure"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationSafetySignPlacementInput"},"CheckSubstationSideHorizontalBreakDisconnectSwitchSpacingInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_phase_spacing_in":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Phase Spacing In"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationSideHorizontalBreakDisconnectSwitchSpacingInput"},"CheckSubstationVerticalBreakDisconnectSwitchSpacingInput":{"properties":{"nominal_voltage_v":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"measured_phase_spacing_in":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Measured Phase Spacing In"},"altitude_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Altitude Ft"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSubstationVerticalBreakDisconnectSwitchSpacingInput"},"CheckSwitchRequirementsInput":{"properties":{"disconnects_grounded_conductor":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disconnects Grounded Conductor"},"disconnects_all_conductors_simultaneously":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disconnects All Conductors Simultaneously"},"grounded_conductor_disconnects_last":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Grounded Conductor Disconnects Last"},"controls_lighting_load":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Controls Lighting Load"},"location_category":{"anyOf":[{"$ref":"#/components/schemas/SwitchLocationCategory"},{"type":"null"}]},"grounded_conductor_present_at_switch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Grounded Conductor Present At Switch"},"raceway_sized_for_grounded_conductor":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Raceway Sized For Grounded Conductor"},"box_accessible_for_future_cable_without_removing_finish":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Box Accessible For Future Cable Without Removing Finish"},"snap_switch_integral_enclosure_complies_300_15_e":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Snap Switch Integral Enclosure Complies 300 15 E"},"lighting_controlled_by_automatic_means":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Lighting Controlled By Automatic Means"},"switch_controls_receptacle_load":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Switch Controls Receptacle Load"},"is_vertically_operated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Vertically Operated"},"up_position_is_on":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Up Position Is On"},"is_double_throw_switch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Double Throw Switch"},"is_busway_center_pivot_tap_switch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Busway Center Pivot Tap Switch"},"mounting_height_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Mounting Height Inches"},"is_busway_installation_exception":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Busway Installation Exception"},"is_equipment_adjacent_accessible_by_portable_means_exception":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Equipment Adjacent Accessible By Portable Means Exception"},"is_snap_switch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Snap Switch"},"connected_to_equipment_grounding_conductor":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Connected To Equipment Grounding Conductor"},"provides_means_to_connect_metal_faceplate_to_egc":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Provides Means To Connect Metal Faceplate To Egc"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckSwitchRequirementsInput"},"CheckTransitStopInput":{"properties":{"facility_type":{"$ref":"#/components/schemas/FacilityType"},"slope_perpendicular_to_street_percent":{"type":"number","title":"Slope Perpendicular To Street Percent"},"is_new_construction_or_alteration":{"type":"boolean","title":"Is New Construction Or Alteration"},"slope_parallel_to_street_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Slope Parallel To Street Percent"},"street_or_track_grade_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Street Or Track Grade Percent"},"clear_length_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Length Inches"},"clear_width_inches":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clear Width Inches"},"is_alteration":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Alteration"},"boarding_area_connected_to_pedestrian_access_route":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Boarding Area Connected To Pedestrian Access Route"},"has_shelter":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Shelter"},"shelter_connected_to_pedestrian_access_route":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Shelter Connected To Pedestrian Access Route"},"shelter_clear_space_complies_with_r404":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Shelter Clear Space Complies With R404"},"has_environmental_controls":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Environmental Controls"},"environmental_controls_proximity_actuated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Environmental Controls Proximity Actuated"}},"type":"object","required":["facility_type","slope_perpendicular_to_street_percent","is_new_construction_or_alteration"],"title":"CheckTransitStopInput"},"CheckUndergroundInstallationCoverInput":{"properties":{"installation_location":{"anyOf":[{"$ref":"#/components/schemas/UndergroundInstallationLocation"},{"type":"null"}]},"wiring_method":{"anyOf":[{"$ref":"#/components/schemas/UndergroundWiringMethod"},{"type":"null"}]},"actual_cover_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Actual Cover Inches"},"system_voltage_exceeds_1000v_to_ground":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"System Voltage Exceeds 1000V To Ground"},"under_building_installed_in_raceway_or_type_mc_for_direct_burial":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Under Building Installed In Raceway Or Type Mc For Direct Burial"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckUndergroundInstallationCoverInput"},"CheckWiringMethodSupportSpacingInput":{"properties":{"uses_nm_cable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Uses Nm Cable"},"nm_cable_support_interval_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Nm Cable Support Interval Inches"},"nm_cable_distance_from_box_entry_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Nm Cable Distance From Box Entry Inches"},"nm_cable_slack_length_to_support_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Nm Cable Slack Length To Support Inches"},"uses_emt":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Uses Emt"},"emt_support_interval_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Emt Support Interval Inches"},"emt_distance_from_termination_inches":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Emt Distance From Termination Inches"},"structural_members_prevent_three_foot_fastening":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Structural Members Prevent Three Foot Fastening"},"is_concealed_fished_unbroken_run_without_coupling":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Concealed Fished Unbroken Run Without Coupling"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"}},"type":"object","title":"CheckWiringMethodSupportSpacingInput"},"CheckWorkingClearancesRequest":{"properties":{"vault_length_ft":{"type":"number","title":"Vault Length Ft"},"vault_width_ft":{"type":"number","title":"Vault Width Ft"},"vault_depth_ft":{"type":"number","title":"Vault Depth Ft"},"voltage_kv":{"type":"number","title":"Voltage Kv","default":12.47},"condition":{"type":"integer","title":"Condition","default":2},"equipment_depth_ft":{"type":"number","title":"Equipment Depth Ft","default":0.0}},"type":"object","required":["vault_length_ft","vault_width_ft","vault_depth_ft"],"title":"CheckWorkingClearancesRequest"},"CircuitBreaker":{"properties":{"id":{"type":"string","title":"Id"},"voltage_class_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Voltage Class Kv"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"}},"type":"object","required":["id"],"title":"CircuitBreaker","description":"A single circuit breaker at a substation. Deliberately minimal — identity only, no\nrating/manufacturer/interrupting-capacity fields — since no function needs more than a count\nof these. Grow this model when a function actually needs a field, per `CLAUDE.md` rule 3, the\nsame discipline `PerimeterFence`'s fields followed.\n\nNOTE (originally flagged 2026-07-18 via VALIDATION.md's AI-assisted pre-review Finding 4,\nresolved same day): `check_bus_configuration_breaker_count` itself still takes flat\n`circuit_count`/`breaker_count` scalars on its own input model, independent of `PerimeterFence`\n— that flat-input-model convention is unchanged (see `CheckSubstationFenceClearanceInput`'s\nequivalent independence from `PerimeterFence`, VALIDATION.md Finding 4). But\n`validate_substation.py`'s adapter layer now DOES read `len(Substation.breakers)` to populate\nthat scalar — see that module for the derivation (including the deliberate \"empty list means\nnot-yet-populated, not confirmed zero\" interpretation) and its own VALIDATION.md entry.\n\n`voltage_class_kv`/`bil_kv` added 2026-07-20 for `render_model.py`'s `grid-model-forge`\nemission — the first real consumer of a physical (not just identity) field on this model.\nSame (nominal kV, BIL kV) keying as `Substation.bil_kv` above and the same source (RUS\nBulletin 1724E-300 Table 4-7, already primary-source-ingested in this repo — see\n`standards/electric_supply_stations/rus_1724e_300_table_4_7_outdoor_clearances.md`), not a new\ncitation. Per-breaker rather than reusing `Substation.nominal_voltage_v`/`bil_kv` directly,\nbecause a real substation can have breakers at more than one voltage level (e.g. a\ntransformer's high side vs. low side) — `None` means \"not yet specified,\" and\n`render_model.py` falls back to the parent `Substation`'s site-level voltage/BIL in that case,\nthe same never-silently-guess pattern `bil_kv` above already uses."},"CircuitClassificationConfig":{"properties":{"primary_voltage_v":{"type":"number","title":"Primary Voltage V","default":12470.0},"secondary_voltage_v":{"type":"number","title":"Secondary Voltage V","default":120.0},"comm_voltage_v":{"type":"number","title":"Comm Voltage V","default":40.0},"comm_max_height_ft":{"type":"number","title":"Comm Max Height Ft","default":23.0},"comm_min_height_ft":{"type":"number","title":"Comm Min Height Ft","default":16.0},"comm_spool_max_height_ft":{"type":"number","title":"Comm Spool Max Height Ft","default":25.0},"comm_type_keywords":{"items":{"type":"string"},"type":"array","title":"Comm Type Keywords"}},"type":"object","title":"CircuitClassificationConfig"},"CircuitClassificationResult":{"properties":{"transformer_present":{"type":"boolean","title":"Transformer Present"},"transformer_ids":{"items":{"type":"string"},"type":"array","title":"Transformer Ids"},"transformer_attachment_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transformer Attachment Height Ft"},"transformer_bottom_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transformer Bottom Height Ft"},"classifications":{"items":{"$ref":"#/components/schemas/AttachmentClassification"},"type":"array","title":"Classifications"},"replacement_construction":{"$ref":"#/components/schemas/ReplacementConstructionClassification"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["transformer_present","transformer_ids"],"title":"CircuitClassificationResult"},"ClassificationPoleModel-Input":{"properties":{"model_version":{"type":"string","title":"Model Version","default":"1.0.0"},"identity":{"$ref":"#/components/schemas/PoleIdentity"},"geometry":{"$ref":"#/components/schemas/PoleGeometry"},"crossarms":{"items":{"$ref":"#/components/schemas/Crossarm-Input"},"type":"array","title":"Crossarms"},"pole_mounted_insulators":{"items":{"$ref":"#/components/schemas/overhead_pole_model__models__Insulator"},"type":"array","title":"Pole Mounted Insulators"},"guys":{"items":{"$ref":"#/components/schemas/Guy"},"type":"array","title":"Guys"},"span_guys":{"items":{"$ref":"#/components/schemas/SpanGuy"},"type":"array","title":"Span Guys"},"anchors":{"items":{"$ref":"#/components/schemas/Anchor"},"type":"array","title":"Anchors"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Attachments"},"equipment":{"items":{"$ref":"#/components/schemas/Equipment"},"type":"array","title":"Equipment"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["identity"],"title":"ClassificationPoleModel","description":"Thin subclass, no new fields today -- see this module's own docstring."},"ClassificationPoleModel-Output":{"properties":{"model_version":{"type":"string","title":"Model Version","default":"1.0.0"},"identity":{"$ref":"#/components/schemas/PoleIdentity"},"geometry":{"$ref":"#/components/schemas/PoleGeometry"},"crossarms":{"items":{"$ref":"#/components/schemas/Crossarm-Output"},"type":"array","title":"Crossarms"},"pole_mounted_insulators":{"items":{"$ref":"#/components/schemas/Insulator-Output"},"type":"array","title":"Pole Mounted Insulators"},"guys":{"items":{"$ref":"#/components/schemas/Guy"},"type":"array","title":"Guys"},"span_guys":{"items":{"$ref":"#/components/schemas/SpanGuy"},"type":"array","title":"Span Guys"},"anchors":{"items":{"$ref":"#/components/schemas/Anchor"},"type":"array","title":"Anchors"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Attachments"},"equipment":{"items":{"$ref":"#/components/schemas/Equipment"},"type":"array","title":"Equipment"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["identity"],"title":"ClassificationPoleModel","description":"Thin subclass, no new fields today -- see this module's own docstring."},"ClassifyCircuitsRequest":{"properties":{"pole":{"$ref":"#/components/schemas/ClassificationPoleModel-Input"},"config":{"anyOf":[{"$ref":"#/components/schemas/CircuitClassificationConfig"},{"type":"null"}]}},"type":"object","required":["pole"],"title":"ClassifyCircuitsRequest"},"ClassifyCircuitsResult":{"properties":{"pole":{"$ref":"#/components/schemas/ClassificationPoleModel-Output"},"classification":{"$ref":"#/components/schemas/CircuitClassificationResult"},"provenance":{"$ref":"#/components/schemas/field_capture_harness__functions__provenance__Provenance"}},"type":"object","required":["pole","classification","provenance"],"title":"ClassifyCircuitsResult","description":"Outer envelope. Named distinctly from `CircuitClassificationResult` (the origin's own\nper-attachment classification bundle, ported unchanged in schemas.py) rather than reusing\nthat name for the envelope, which would shadow it."},"ClassifyCrossarmFramingRequest":{"properties":{"crossarms":{"items":{"$ref":"#/components/schemas/CrossarmValidationInput"},"type":"array","title":"Crossarms"},"guys":{"anyOf":[{"items":{"$ref":"#/components/schemas/GuyInput"},"type":"array"},{"type":"null"}],"title":"Guys"},"config":{"anyOf":[{"$ref":"#/components/schemas/FramingClassifierConfig"},{"type":"null"}]}},"type":"object","required":["crossarms"],"title":"ClassifyCrossarmFramingRequest"},"ClassifyPoleAdequacyRequest":{"properties":{"stored":{"anyOf":[{"$ref":"#/components/schemas/StoredCapacityData"},{"type":"null"}]},"attachments":{"$ref":"#/components/schemas/AttachmentSummary"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["attachments","source_ref"],"title":"ClassifyPoleAdequacyRequest"},"ClassifyPoleFramingRequest":{"properties":{"pole":{"$ref":"#/components/schemas/ClassificationPoleModel-Input"},"guys":{"anyOf":[{"items":{"$ref":"#/components/schemas/GuyInput"},"type":"array"},{"type":"null"}],"title":"Guys"},"config":{"anyOf":[{"$ref":"#/components/schemas/FramingClassifierConfig"},{"type":"null"}]},"height_tolerance_ft":{"type":"number","title":"Height Tolerance Ft","default":3.0},"corner_split_deg":{"type":"number","title":"Corner Split Deg","default":90.0}},"type":"object","required":["pole"],"title":"ClassifyPoleFramingRequest"},"ClassifyPoleFramingResult":{"properties":{"crossarm_inputs":{"items":{"$ref":"#/components/schemas/CrossarmValidationInput"},"type":"array","title":"Crossarm Inputs"},"framing_results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Framing Results"},"faults":{"items":{"$ref":"#/components/schemas/FramingFault"},"type":"array","title":"Faults"},"guying":{"$ref":"#/components/schemas/ValidateGuyingResult"},"provenance":{"$ref":"#/components/schemas/field_capture_harness__functions__provenance__Provenance"}},"type":"object","required":["crossarm_inputs","framing_results","faults","guying","provenance"],"title":"ClassifyPoleFramingResult"},"ClearanceIssue":{"properties":{"table":{"type":"string","title":"Table"},"message":{"type":"string","title":"Message"},"attachment_ids":{"items":{"type":"string"},"type":"array","title":"Attachment Ids"},"actual":{"type":"number","title":"Actual"},"required":{"type":"number","title":"Required"}},"type":"object","required":["table","message","attachment_ids","actual","required"],"title":"ClearanceIssue"},"ComponentAvailabilityResult":{"properties":{"mtbf_hours":{"type":"number","title":"Mtbf Hours"},"mttr_hours":{"type":"number","title":"Mttr Hours"},"availability":{"type":"number","title":"Availability"},"provenance":{"$ref":"#/components/schemas/controls_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["mtbf_hours","mttr_hours","availability","provenance"],"title":"ComponentAvailabilityResult"},"ComputeMidspanElevationsRequest":{"properties":{"crossarms":{"items":{"$ref":"#/components/schemas/MidspanCrossarmInput"},"type":"array","title":"Crossarms"},"code":{"type":"string","title":"Code"},"source_ref":{"type":"string","title":"Source Ref"},"nesc_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nesc District"},"max_operating_temp_f":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Operating Temp F"}},"type":"object","required":["crossarms","code","source_ref"],"title":"ComputeMidspanElevationsRequest"},"ConductorBlowoutProfileRequest":{"properties":{"span_ft":{"type":"number","title":"Span Ft"},"swung_plane_sag_ft":{"type":"number","title":"Swung Plane Sag Ft"},"swing_angle_deg":{"type":"number","title":"Swing Angle Deg"},"source_ref":{"type":"string","title":"Source Ref"},"n_samples":{"type":"integer","title":"N Samples","default":21}},"type":"object","required":["span_ft","swung_plane_sag_ft","swing_angle_deg","source_ref"],"title":"ConductorBlowoutProfileRequest"},"ConductorMaterial":{"type":"string","enum":["copper","aluminum"],"title":"ConductorMaterial"},"ConductorMechanicalProps":{"properties":{"weight_lb_per_ft":{"type":"number","title":"Weight Lb Per Ft"},"cross_sectional_area_in2":{"type":"number","title":"Cross Sectional Area In2"},"modulus_psi":{"type":"number","title":"Modulus Psi"},"coef_thermal_expansion_per_f":{"type":"number","title":"Coef Thermal Expansion Per F"},"rbs_lb":{"type":"number","title":"Rbs Lb"},"diameter_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Diameter In"}},"type":"object","required":["weight_lb_per_ft","cross_sectional_area_in2","modulus_psi","coef_thermal_expansion_per_f","rbs_lb"],"title":"ConductorMechanicalProps"},"ConductorPhaseConfig":{"type":"string","enum":["single_phase_120","single_phase_120_240","three_phase_208y_120","three_phase_480y_277","three_phase_240_delta"],"title":"ConductorPhaseConfig"},"ConductorSagTensionChangeOfStateRequest":{"properties":{"conductor":{"$ref":"#/components/schemas/ConductorMechanicalProps"},"horizontal_span_ft":{"type":"number","title":"Horizontal Span Ft"},"initial_state":{"$ref":"#/components/schemas/SagTensionState"},"final_loading":{"$ref":"#/components/schemas/IceWindLoading"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["conductor","horizontal_span_ft","initial_state","final_loading","source_ref"],"title":"ConductorSagTensionChangeOfStateRequest"},"ConductorSize":{"type":"string","enum":["14 AWG","12 AWG","10 AWG","8 AWG","6 AWG","4 AWG","3 AWG","2 AWG","1 AWG","1/0 AWG","2/0 AWG","3/0 AWG","4/0 AWG","250 kcmil","300 kcmil","350 kcmil","400 kcmil","500 kcmil"],"title":"ConductorSize","description":"Sizes ingested this pass — see standards/electrical/nec_2023_article_240_310_ampacity.md.\n14 AWG through 500 kcmil; nothing smaller or larger is modeled. Not every size has an aluminum\nentry -- see _AMPACITY_AMPS."},"ConductorThermalProps":{"properties":{"diameter_in":{"type":"number","title":"Diameter In"},"ac_resistance_ohm_per_mile_25c":{"type":"number","title":"Ac Resistance Ohm Per Mile 25C"},"ac_resistance_ohm_per_mile_75c":{"type":"number","title":"Ac Resistance Ohm Per Mile 75C"},"emissivity":{"type":"number","title":"Emissivity","default":0.5},"solar_absorptivity":{"type":"number","title":"Solar Absorptivity","default":0.5}},"type":"object","required":["diameter_in","ac_resistance_ohm_per_mile_25c","ac_resistance_ohm_per_mile_75c"],"title":"ConductorThermalProps","description":"Conductor physical + electrical properties for the heat balance, per the manufacturer's\ndatasheet."},"ConduitFillRequest":{"properties":{"conduit_trade_size_in":{"type":"number","title":"Conduit Trade Size In"},"conduit_material":{"type":"string","title":"Conduit Material","default":"PVC_40"},"cable_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cable Types"},"cable_od_in_list":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Cable Od In List"}},"type":"object","required":["conduit_trade_size_in"],"title":"ConduitFillRequest"},"ConnectionPoint":{"properties":{"name":{"type":"string","title":"Name"},"kind":{"type":"string","title":"Kind","description":"USD prim type at this point, e.g. 'Mesh'"},"x_m":{"type":"number","title":"X M"},"y_m":{"type":"number","title":"Y M"},"z_m":{"type":"number","title":"Z M"},"properties":{"additionalProperties":{"$ref":"#/components/schemas/PropertyValue"},"type":"object","title":"Properties"}},"type":"object","required":["name","kind","x_m","y_m","z_m"],"title":"ConnectionPoint","description":"A named physical connection stub on a piece of equipment (liquid supply/return,\nelectrical drop, air vent, etc.), positioned in world-space meters."},"CoolingClass":{"type":"string","enum":["ONAN","ONAF","ODAF"],"title":"CoolingClass","description":"Transformer cooling class. Drives the n + m exponents and the rated top-oil + hottest-spot\ntemperature rises."},"CoolingSupplyUnit":{"properties":{"name":{"type":"string","title":"Name"},"capacity_kw":{"type":"number","title":"Capacity Kw"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["name","capacity_kw","source_ref"],"title":"CoolingSupplyUnit"},"CrossLineClearanceRequest":{"properties":{"line_a_spans":{"items":{"$ref":"#/components/schemas/CrossLineSpanInput"},"type":"array","title":"Line A Spans"},"line_b_spans":{"items":{"$ref":"#/components/schemas/CrossLineSpanInput"},"type":"array","title":"Line B Spans"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["line_a_spans","line_b_spans","source_ref"],"title":"CrossLineClearanceRequest"},"CrossLineClearanceResult":{"properties":{"crossings":{"items":{"$ref":"#/components/schemas/CrossLineCrossing"},"type":"array","title":"Crossings"},"total_crossings":{"type":"integer","title":"Total Crossings"},"violations":{"type":"integer","title":"Violations"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["crossings","total_crossings","violations","provenance"],"title":"CrossLineClearanceResult"},"CrossLineConductorInput":{"properties":{"nominal_voltage_kv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Nominal Voltage Kv"},"voltage_kv":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voltage Kv"},"voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voltage V"},"family":{"anyOf":[{"type":"string","enum":["comm","communication","secondary","primary"]},{"type":"null"}],"title":"Family"}},"type":"object","title":"CrossLineConductorInput"},"CrossLineCrossing":{"properties":{"line_a_pole_pair":{"items":{"type":"string"},"type":"array","title":"Line A Pole Pair"},"line_a_usage_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line A Usage Hint"},"line_a_voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Line A Voltage V"},"line_b_pole_pair":{"items":{"type":"string"},"type":"array","title":"Line B Pole Pair"},"line_b_usage_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Line B Usage Hint"},"line_b_voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Line B Voltage V"},"crossing_lat":{"type":"number","title":"Crossing Lat"},"crossing_lon":{"type":"number","title":"Crossing Lon"},"elevation_line_a_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation Line A Ft"},"elevation_line_b_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation Line B Ft"},"actual_separation_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Actual Separation Ft"},"required_separation_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Required Separation Ft"},"required_separation_inches":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Required Separation Inches"},"rule_citation":{"type":"string","title":"Rule Citation"},"status":{"type":"string","enum":["OK","BELOW_MIN","UNKNOWN"],"title":"Status"},"deficit_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Deficit Ft"}},"type":"object","required":["line_a_pole_pair","line_a_usage_hint","line_a_voltage_v","line_b_pole_pair","line_b_usage_hint","line_b_voltage_v","crossing_lat","crossing_lon","elevation_line_a_ft","elevation_line_b_ft","actual_separation_ft","required_separation_ft","required_separation_inches","rule_citation","status","deficit_ft"],"title":"CrossLineCrossing"},"CrossLineSagPoint":{"properties":{"station_ft":{"type":"number","title":"Station Ft"},"conductor_elevation_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Conductor Elevation Ft"},"ground_elevation_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ground Elevation Ft"}},"type":"object","required":["station_ft"],"title":"CrossLineSagPoint"},"CrossLineSpanInput":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"next_pole_id":{"type":"string","title":"Next Pole Id"},"pole_lat":{"type":"number","title":"Pole Lat"},"pole_lon":{"type":"number","title":"Pole Lon"},"next_pole_lat":{"type":"number","title":"Next Pole Lat"},"next_pole_lon":{"type":"number","title":"Next Pole Lon"},"usage_group_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usage Group Hint"},"conductor":{"anyOf":[{"$ref":"#/components/schemas/CrossLineConductorInput"},{"type":"null"}]},"points":{"items":{"$ref":"#/components/schemas/CrossLineSagPoint"},"type":"array","title":"Points","default":[]}},"type":"object","required":["pole_id","next_pole_id","pole_lat","pole_lon","next_pole_lat","next_pole_lon"],"title":"CrossLineSpanInput"},"CrossSectionType":{"type":"string","enum":["circular","non_circular"],"title":"CrossSectionType"},"Crossarm-Input":{"properties":{"crossarm_id":{"type":"string","title":"Crossarm Id"},"crossarm_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crossarm Type"},"attachment_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"offset":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"side":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Side"},"insulators":{"items":{"$ref":"#/components/schemas/overhead_pole_model__models__Insulator"},"type":"array","title":"Insulators"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["crossarm_id"],"title":"Crossarm"},"Crossarm-Output":{"properties":{"crossarm_id":{"type":"string","title":"Crossarm Id"},"crossarm_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crossarm Type"},"attachment_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"offset":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"side":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Side"},"insulators":{"items":{"$ref":"#/components/schemas/Insulator-Output"},"type":"array","title":"Insulators"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["crossarm_id"],"title":"Crossarm"},"CrossarmGuyingResult":{"properties":{"crossarm_id":{"type":"string","title":"Crossarm Id"},"crossarm_attachment_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crossarm Attachment Height Ft"},"framing_classification":{"type":"string","title":"Framing Classification"},"circuit_classification":{"type":"string","title":"Circuit Classification"},"guying_required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Guying Required"},"angle_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Angle Category"},"interior_angle_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Interior Angle Deg"},"required_guys":{"items":{"$ref":"#/components/schemas/RequiredGuyCheck"},"type":"array","title":"Required Guys"},"is_compliant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Compliant"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"}},"type":"object","required":["crossarm_id","framing_classification","circuit_classification","guying_required","is_compliant"],"title":"CrossarmGuyingResult"},"CrossarmMaxVerticalSpanInput":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"designated_bending_stress_psi":{"type":"number","title":"Designated Bending Stress Psi"},"section_modulus_in3":{"type":"number","title":"Section Modulus In3"},"load_factor":{"type":"number","title":"Load Factor"},"insulator_weight_lbs":{"type":"number","title":"Insulator Weight Lbs"},"conductor_weight_per_ft_lbs":{"type":"number","title":"Conductor Weight Per Ft Lbs"},"moment_arm_ft":{"type":"number","title":"Moment Arm Ft"}},"type":"object","required":["strength_factor","designated_bending_stress_psi","section_modulus_in3","load_factor","insulator_weight_lbs","conductor_weight_per_ft_lbs","moment_arm_ft"],"title":"CrossarmMaxVerticalSpanInput"},"CrossarmMidspanResult":{"properties":{"crossarm_id":{"type":"string","title":"Crossarm Id"},"attachment_height_ft":{"type":"number","title":"Attachment Height Ft"},"voltage_v":{"type":"number","title":"Voltage V"},"attachment_type":{"type":"string","enum":["communication","supply_cable","neutral","open_supply","span_wire","guy_wire","messenger"],"title":"Attachment Type"},"related_attachment_ids":{"items":{"type":"string"},"type":"array","title":"Related Attachment Ids"},"per_span":{"items":{"$ref":"#/components/schemas/MidspanSpanResult"},"type":"array","title":"Per Span"},"worst_midspan_ft":{"additionalProperties":{"type":"number"},"type":"object","title":"Worst Midspan Ft"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["crossarm_id","attachment_height_ft","voltage_v","attachment_type"],"title":"CrossarmMidspanResult"},"CrossarmValidationInput":{"properties":{"crossarm_id":{"type":"string","title":"Crossarm Id"},"crossarm_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crossarm Type"},"crossarm_attachment_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crossarm Attachment Height Ft"},"crossarm_kind":{"anyOf":[{"type":"string","enum":["single","double"]},{"type":"null"}],"title":"Crossarm Kind"},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"insulators":{"items":{"$ref":"#/components/schemas/InsulatorValidationInput"},"type":"array","title":"Insulators"}},"type":"object","required":["crossarm_id"],"title":"CrossarmValidationInput"},"CrossingContext":{"type":"string","enum":["intersection_corner","midblock_or_roundabout","parallel_parking_connection","perpendicular_angled_parking_or_loading_zone_connection","altered_crosswalk"],"title":"CrossingContext"},"CsaGradeInput":{"properties":{"upper_class":{"type":"string","enum":["communication","supply_0_1000v","supply_gt_1000v"],"title":"Upper Class"},"lower_items":{"items":{"type":"string","enum":["railway_control_facilities_and_tracks","limited_or_controlled_access_highways","roads_and_highways_general","pipelines","navigable_waters_cnwa_listed","other_navigable_waters","non_navigable_waters","aerial_tramways","other_private_or_public_property","communication_cable","communication_open_wire_general","communication_drop_wire","supply_0_1000v","supply_gt_1000v"]},"type":"array","title":"Lower Items"},"coordinated_electrical_protection":{"type":"boolean","title":"Coordinated Electrical Protection","default":false},"supply_rts_kn":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Supply Rts Kn"},"upper_supply_effectively_grounded_sheathed_cable":{"type":"boolean","title":"Upper Supply Effectively Grounded Sheathed Cable","default":false},"lower_supply_effectively_grounded_sheathed_cable":{"type":"boolean","title":"Lower Supply Effectively Grounded Sheathed Cable","default":false},"upper_voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Upper Voltage V"},"lower_voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lower Voltage V"}},"type":"object","required":["upper_class","lower_items"],"title":"CsaGradeInput","description":"CSA C22.3 No.1:25 Table 27 (in-span crossings) grade-of-construction input. Covers\ncrossings only -- Table 28 (proximities) and Table 29 (joint-use) are separate, undelivered\nCSA capabilities (see determine_csa_grade.py's own module docstring)."},"CsaGradeRequest":{"properties":{"inp":{"$ref":"#/components/schemas/CsaGradeInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["inp","source_ref"],"title":"CsaGradeRequest"},"CsaJointUseGradeInput":{"properties":{"upper_class":{"type":"string","enum":["supply_0_1000v","supply_gt_1000v"],"title":"Upper Class"},"lower_items":{"items":{"type":"string","enum":["communication_cable","communication_open_wire_general","communication_drop_wire","supply_all_voltages"]},"type":"array","title":"Lower Items"},"coordinated_electrical_protection":{"type":"boolean","title":"Coordinated Electrical Protection","default":false},"supply_rts_kn":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Supply Rts Kn"},"upper_supply_effectively_grounded_sheathed_cable":{"type":"boolean","title":"Upper Supply Effectively Grounded Sheathed Cable","default":false}},"type":"object","required":["upper_class","lower_items"],"title":"CsaJointUseGradeInput","description":"CSA C22.3 No.1:25 Table 29 (joint-use) grade-of-construction input. Narrower vocabulary\nthan Table 27/28: only two upper classes (joint-use is inherently supply-above-communication;\nthere is no \"communication upper\" column), and only four lower items. NOTE:\n`supply_all_voltages` is a DIFFERENT key from Table 27/28's `supply_0_1000v`/\n`supply_gt_1000v` split -- Table 29 collapses supply into one row by design (joint-use grade\ndoesn't depend on the supply conductor's own voltage class the way crossings/proximities do).\nA caller copying a Table 27/28 call will get a Pydantic validation error passing\n`supply_gt_1000v`/`supply_0_1000v` as a lower_item here -- that's intentional, not a missing\nvalue. This model also carries no voltage fields, so Clause 6.1's <=69kV ceiling is the\ncaller's own responsibility to confirm, same as Table 28 above."},"CsaJointUseGradeRequest":{"properties":{"inp":{"$ref":"#/components/schemas/CsaJointUseGradeInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["inp","source_ref"],"title":"CsaJointUseGradeRequest"},"CsaProximityGradeInput":{"properties":{"upper_class":{"type":"string","enum":["communication","supply_0_1000v","supply_gt_1000v"],"title":"Upper Class"},"lower_items":{"items":{"type":"string","enum":["railway_control_facilities_and_tracks","limited_or_controlled_access_highways","roads_and_highways_general","pipelines","navigable_waters_cnwa_listed","other_navigable_waters","non_navigable_waters","aerial_tramways","other_private_or_public_property","communication_cable","communication_open_wire_general","communication_drop_wire","supply_0_1000v","supply_gt_1000v"]},"type":"array","title":"Lower Items"},"navigable_water_failure_interferes_less_than_one_sixth":{"type":"boolean","title":"Navigable Water Failure Interferes Less Than One Sixth","default":false},"coordinated_electrical_protection":{"type":"boolean","title":"Coordinated Electrical Protection","default":false},"upper_supply_effectively_grounded_sheathed_cable":{"type":"boolean","title":"Upper Supply Effectively Grounded Sheathed Cable","default":false},"proximity_supply_effectively_grounded_sheathed_cable":{"type":"boolean","title":"Proximity Supply Effectively Grounded Sheathed Cable","default":false}},"type":"object","required":["upper_class","lower_items"],"title":"CsaProximityGradeInput","description":"CSA C22.3 No.1:25 Table 28 (proximities) grade-of-construction input. Reuses Table 27's\nown 14-value CsaLowerItem vocabulary (identical rows). Footnote conditions below are\nevaluated literally and independently, per-cell -- Table 28's own column header additionally\nreads \"Conductors 0-1000 V or effectively grounded continuous metallic sheathed supply cables\nof all voltages\", which could be read as a column-reclassification rule applying uniformly\nacross every row; that broader reading was deliberately NOT implemented (asked the user\ndirectly rather than guess at unread text, e.g. a Clause 3 definitions section that might\ndisambiguate it -- see determine_csa_grade_proximity.py's own module docstring). This model\nalso carries no voltage fields, so Clause 6.1's <=69kV applicability ceiling (enforced via\nCsaGradeInput.upper_voltage_v/lower_voltage_v for Table 27) is NOT checked here -- confirming\nthat precondition is the caller's own responsibility."},"CsaProximityGradeRequest":{"properties":{"inp":{"$ref":"#/components/schemas/CsaProximityGradeInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["inp","source_ref"],"title":"CsaProximityGradeRequest"},"CsaTable2ClearanceRequest":{"properties":{"case":{"type":"string","title":"Case"},"source_ref":{"type":"string","title":"Source Ref"},"is_guy_or_comm":{"type":"boolean","title":"Is Guy Or Comm","default":false},"voltage_kv":{"type":"number","title":"Voltage Kv","default":0.0},"new_or_rebuilt_crossing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Or Rebuilt Crossing"},"farmland_reduced_access":{"type":"boolean","title":"Farmland Reduced Access","default":false},"snow_depth_addition_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Snow Depth Addition Ft"}},"type":"object","required":["case","source_ref"],"title":"CsaTable2ClearanceRequest"},"CsaTable2ClearanceResult":{"properties":{"case":{"type":"string","enum":["road_vehicles","agricultural_equipment","off_road_vehicles","road_row_inaccessible","pedestrian_only","railway"],"title":"Case"},"base_clearance_ft":{"type":"number","title":"Base Clearance Ft"},"required_clearance_ft":{"type":"number","title":"Required Clearance Ft"},"snow_depth_addition_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Snow Depth Addition Ft"},"crossing_addition_applied":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crossing Addition Applied"},"farmland_reduction_applied":{"type":"boolean","title":"Farmland Reduction Applied","default":false},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["case","base_clearance_ft","required_clearance_ft","rule_refs","provenance"],"title":"CsaTable2ClearanceResult"},"CsaZoneRequest":{"properties":{"zone":{"type":"string","title":"Zone"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["zone","source_ref"],"title":"CsaZoneRequest"},"CsaZoneResult":{"properties":{"zone":{"type":"string","title":"Zone"},"values":{"$ref":"#/components/schemas/DistrictOrZoneValues"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["zone","values","rule_refs","provenance"],"title":"CsaZoneResult"},"CurbRampType":{"type":"string","enum":["perpendicular","parallel","blended_transition"],"title":"CurbRampType"},"CurrentTransformer":{"properties":{"id":{"type":"string","title":"Id"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"}},"type":"object","required":["id"],"title":"CurrentTransformer","description":"A single current transformer (CT) at a substation.\n\n`bil_kv` added 2026-07-28 (Part LXXXIV) for `render_model.py`'s `grid-model-forge` emission —\n`CurrentTransformerParams` requires it, keyed against a real cited Ritz Instrument Transformers\nType ICO product-brochure GA-dimension table (5 real rows, BIL 350/550/650/750/1050 — see that\nschema's own docstring). `None` means \"not yet specified\"; unlike `CircuitBreaker`, there is no\nsite-level BIL fallback here on purpose — a CT's own BIL class is frequently one of several\ninstalled at different points across a site (e.g. bus-side vs. line-side), not reliably the\nsame as `Substation.bil_kv`, so this repo does not silently borrow the site value for it."},"CurveChartData":{"properties":{"series":{"items":{"$ref":"#/components/schemas/CurvePoint"},"type":"array","title":"Series"},"query_point":{"$ref":"#/components/schemas/CurvePoint"},"bracketing_points":{"prefixItems":[{"$ref":"#/components/schemas/CurvePoint"},{"$ref":"#/components/schemas/CurvePoint"}],"type":"array","maxItems":2,"minItems":2,"title":"Bracketing Points"},"within_curve_range":{"type":"boolean","title":"Within Curve Range"},"x_label":{"type":"string","title":"X Label"},"y_label":{"type":"string","title":"Y Label"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["series","query_point","bracketing_points","within_curve_range","x_label","y_label","provenance"],"title":"CurveChartData"},"CurvePoint":{"properties":{"x":{"type":"number","title":"X"},"y":{"type":"number","title":"Y"}},"type":"object","required":["x","y"],"title":"CurvePoint"},"DeadendSection":{"properties":{"section_id":{"type":"string","title":"Section Id"},"pole_ids":{"items":{"type":"string"},"type":"array","title":"Pole Ids"},"span_ids":{"items":{"type":"string"},"type":"array","title":"Span Ids"},"total_span_length_ft":{"type":"number","title":"Total Span Length Ft"},"ruling_span_ft":{"type":"number","title":"Ruling Span Ft"},"spans_by_tag":{"additionalProperties":{"items":{"$ref":"#/components/schemas/LineSpan"},"type":"array"},"type":"object","title":"Spans By Tag","default":{}}},"type":"object","required":["section_id","pole_ids","span_ids","total_span_length_ft","ruling_span_ft"],"title":"DeadendSection"},"DeclaredLoadCase":{"properties":{"code":{"type":"string","enum":["NESC","GO95","CSA"],"title":"Code"},"revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revision"},"grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grade"},"zone_or_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone Or District"},"construction_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Construction Type"}},"type":"object","required":["code"],"title":"DeclaredLoadCase","description":"Normalized declared load case -- caller-side responsibility to translate a raw\nSPIDA `loadCase` dict (`type`/`constructionGrade`/`loadZone`/`constructionType`)\ninto this shape before calling. The origin auto-detected either shape from one\ndict; this port keeps only the typed, normalized input (disclosed simplification,\nconsistent with this repo's \"clean typed models, not raw dicts\" convention)."},"DeriveAttachmentSummaryRequest":{"properties":{"pole":{"$ref":"#/components/schemas/OcalcPoleModel-Input"}},"type":"object","required":["pole"],"title":"DeriveAttachmentSummaryRequest"},"DesignDuctBankLayoutRequest":{"properties":{"conduit_count":{"type":"integer","title":"Conduit Count"},"conduit_size_in":{"type":"number","title":"Conduit Size In","default":4.0},"max_conduits_per_row":{"type":"integer","title":"Max Conduits Per Row","default":4},"min_spacing_in":{"type":"number","title":"Min Spacing In","default":7.5},"min_cover_in":{"type":"number","title":"Min Cover In","default":3.0}},"type":"object","required":["conduit_count"],"title":"DesignDuctBankLayoutRequest"},"DetailedCheck":{"properties":{"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"status":{"type":"string","title":"Status"}},"type":"object","required":["status"],"title":"DetailedCheck"},"DetectFramingFaultsRequest":{"properties":{"framing_results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Framing Results"},"crossarm_inputs":{"anyOf":[{"items":{"$ref":"#/components/schemas/CrossarmValidationInput"},"type":"array"},{"type":"null"}],"title":"Crossarm Inputs"},"pole_model":{"anyOf":[{"$ref":"#/components/schemas/ClassificationPoleModel-Input"},{"type":"null"}]}},"type":"object","required":["framing_results"],"title":"DetectFramingFaultsRequest"},"DetectableWarningApplicationContext":{"type":"string","enum":["perpendicular_curb_ramp","parallel_curb_ramp","blended_transition","refuge_island","rail_crossing"],"title":"DetectableWarningApplicationContext"},"DiameterCandidateEvaluation":{"properties":{"diameter_mm":{"type":"number","title":"Diameter Mm"},"velocity_result":{"$ref":"#/components/schemas/PipeVelocityResult"},"state":{"type":"string","enum":["passes_cited_limit","fails_cited_limit","gap_no_cited_limit"],"title":"State"}},"type":"object","required":["diameter_mm","velocity_result","state"],"title":"DiameterCandidateEvaluation"},"DischargeDurationResult":{"properties":{"energy_available_kwh":{"type":"number","title":"Energy Available Kwh"},"requested_power_kw":{"type":"number","title":"Requested Power Kw"},"applied_power_kw":{"type":"number","title":"Applied Power Kw"},"power_was_capped":{"type":"boolean","title":"Power Was Capped"},"duration_hours":{"type":"number","title":"Duration Hours"},"provenance":{"$ref":"#/components/schemas/der_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["energy_available_kwh","requested_power_kw","applied_power_kw","power_was_capped","duration_hours","provenance"],"title":"DischargeDurationResult"},"DisconnectSwitch":{"properties":{"id":{"type":"string","title":"Id"},"voltage_class_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Voltage Class Kv"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"}},"type":"object","required":["id"],"title":"DisconnectSwitch","description":"A single disconnect switch at a substation.\n\n`voltage_class_kv`/`bil_kv` added 2026-07-28 (gateway_core_integration_plan.md Part LXXXIV)\nfor `render_model.py`'s `grid-model-forge` emission — same (nominal kV, BIL kV) RUS Bulletin\n1724E-300 Table 4-7 keying `CircuitBreaker` already uses, not a new citation. `None` means \"not\nyet specified\"; `render_model.py` falls back to the parent `Substation`'s site-level voltage/\nBIL, same never-silently-guess pattern `CircuitBreaker` already uses."},"DistrictOrZoneValues":{"properties":{"ice_in":{"type":"number","title":"Ice In"},"wind_psf":{"type":"number","title":"Wind Psf"},"temp_f":{"type":"number","title":"Temp F"},"constant_k_lb_per_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Constant K Lb Per Ft"}},"type":"object","required":["ice_in","wind_psf","temp_f"],"title":"DistrictOrZoneValues"},"DwsLocationType":{"type":"string","enum":["curb_ramp_or_blended_transition_at_crosswalk","refuge_island","rail_crossing","boarding_platform","sidewalk_street_level_rail_boarding","driveway"],"title":"DwsLocationType"},"EdgeProtectionType":{"type":"string","enum":["extended_surface","curb","barrier"],"title":"EdgeProtectionType","description":"Which R407.9 edge-protection path a given side of a ramp run/landing uses. PROWAG states\nthe curb and barrier alternatives (R407.9.2) as two independent tests, not one unified sphere\ntest the way the 2010 ADAS does — see standards doc's \"Cross-verification\" section."},"ElectricalLocation":{"type":"string","enum":["bathroom","kitchen","sink_or_food_prep_area","garage_or_accessory_building","outdoors","basement_finished","basement_unfinished","bedroom","family_room","dining_room","living_room","parlor","library","den","sunroom","recreation_room","closet","hallway","laundry_area","rooftop","locker_room_with_showering_facilities","crawl_space","boat_house","bathtub_or_shower_stall_area","damp_or_wet_location_indoor"],"title":"ElectricalLocation","description":"Locations modeled this pass, across both dwelling and non-dwelling scopes. See\nstandards/electrical/nec_2023_article_210_8_210_12_gfci_afci.md for the full location list.\nCRAWL_SPACE/BOAT_HOUSE/BATHTUB_OR_SHOWER_STALL_AREA/DAMP_OR_WET_LOCATION_INDOOR are\nrepresentable (added 2026-07-17 per an AI-assisted pre-review pass) but deliberately not wired\ninto any requirement table — they resolve to NOT_EVALUATED, not an asserted requirement, until\ncorroborated. Garages-as-non-dwelling-GFCI-trigger and aquatic vessels remain entirely\nunmodeled pending further corroboration."},"EnrichPoleForReplacementPlanningRequest":{"properties":{"pole":{"$ref":"#/components/schemas/ClassificationPoleModel-Input"},"config":{"anyOf":[{"$ref":"#/components/schemas/CircuitClassificationConfig"},{"type":"null"}]},"force_refresh":{"type":"boolean","title":"Force Refresh","default":false}},"type":"object","required":["pole"],"title":"EnrichPoleForReplacementPlanningRequest"},"EnrichReplacementPairForPlanningRequest":{"properties":{"existing_pole":{"$ref":"#/components/schemas/ClassificationPoleModel-Input"},"installation_pole":{"$ref":"#/components/schemas/ClassificationPoleModel-Input"},"config":{"anyOf":[{"$ref":"#/components/schemas/CircuitClassificationConfig"},{"type":"null"}]},"force_refresh":{"type":"boolean","title":"Force Refresh","default":false}},"type":"object","required":["existing_pole","installation_pole"],"title":"EnrichReplacementPairForPlanningRequest"},"EnvironmentalConditions":{"properties":{"ambient_temp_c":{"type":"number","title":"Ambient Temp C"},"wind_speed_ft_per_s":{"type":"number","title":"Wind Speed Ft Per S"},"wind_angle_deg":{"type":"number","title":"Wind Angle Deg","default":90.0},"elevation_ft":{"type":"number","title":"Elevation Ft","default":0.0},"q_s_watts_per_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Q S Watts Per Ft"},"solar_flux_watts_per_ft2":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Solar Flux Watts Per Ft2"}},"type":"object","required":["ambient_temp_c","wind_speed_ft_per_s"],"title":"EnvironmentalConditions","description":"Ambient + solar + wind conditions for the heat balance."},"Equipment":{"properties":{"equipment_id":{"type":"string","title":"Equipment Id"},"equipment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Equipment Type"},"equipment_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Equipment Size"},"attachment_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"bottom_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["equipment_id"],"title":"Equipment"},"EquipmentOwnership":{"type":"string","enum":["customer_owned","utility_owned","unknown"],"title":"EquipmentOwnership","description":"Which side of the NEC 90.2 service point the checked equipment sits on -- see the standards\nfile's \"NEC/NESC boundary\" section. UNKNOWN is the default, preserving this function's original\n(pre-2026-07-20) behavior of proceeding without an ownership declaration."},"EquipmentSpec":{"properties":{"name":{"type":"string","title":"Name"},"source_file":{"type":"string","title":"Source File"},"properties":{"additionalProperties":{"$ref":"#/components/schemas/PropertyValue"},"type":"object","title":"Properties"},"connection_points":{"items":{"$ref":"#/components/schemas/ConnectionPoint"},"type":"array","title":"Connection Points"},"geometry":{"$ref":"#/components/schemas/GeometryInfo"},"known_gaps":{"items":{"type":"string"},"type":"array","title":"Known Gaps","description":"Human-readable notes on data missing from the source NVIDIA archive for this asset (e.g. 'geometry payload absent from NGC package') -- NOT a place to record extraction bugs, only genuine upstream gaps. Empty list means no known gaps, not 'verified complete'."},"sources":{"items":{"$ref":"#/components/schemas/SourceReference"},"type":"array","title":"Sources"}},"type":"object","required":["name","source_file","geometry"],"title":"EquipmentSpec","description":"Full record for one piece of AI-factory equipment."},"EquipmentSummary":{"properties":{"name":{"type":"string","title":"Name"},"asset_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Class"},"manufacturer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Manufacturer"},"model_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Number"},"has_connection_points":{"type":"boolean","title":"Has Connection Points"},"has_geometry":{"type":"boolean","title":"Has Geometry"}},"type":"object","required":["name","has_connection_points","has_geometry"],"title":"EquipmentSummary","description":"Lightweight listing entry -- use get_equipment for full properties."},"EvaluateFailoverSequenceCandidatesRequest":{"properties":{"required_capacity":{"type":"number","title":"Required Capacity"},"time_budget_s":{"type":"number","title":"Time Budget S"},"candidates":{"items":{"$ref":"#/components/schemas/FailoverSequenceCandidate"},"type":"array","title":"Candidates"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["required_capacity","time_budget_s","candidates","source_ref"],"title":"EvaluateFailoverSequenceCandidatesRequest"},"EvaluateLiquidCoolingHeatDissipationRequest":{"properties":{"flow_lpm":{"type":"number","title":"Flow Lpm"},"supply_temp_c":{"type":"number","title":"Supply Temp C"},"return_temp_c":{"type":"number","title":"Return Temp C"},"specific_heat_j_kgk":{"type":"number","title":"Specific Heat J Kgk"},"density_kg_m3":{"type":"number","title":"Density Kg M3"},"source_ref":{"type":"string","title":"Source Ref"},"rated_heat_load_kw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rated Heat Load Kw"}},"type":"object","required":["flow_lpm","supply_temp_c","return_temp_c","specific_heat_j_kgk","density_kg_m3","source_ref"],"title":"EvaluateLiquidCoolingHeatDissipationRequest"},"EvaluatePipeVelocityForFlowRateRequest":{"properties":{"flow_lpm":{"type":"number","title":"Flow Lpm"},"diameter_mm":{"type":"number","title":"Diameter Mm"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["flow_lpm","diameter_mm","source_ref"],"title":"EvaluatePipeVelocityForFlowRateRequest"},"EvaluateQuadraticPqCurveRequest":{"properties":{"flow":{"type":"number","title":"Flow"},"a":{"type":"number","title":"A"},"b":{"type":"number","title":"B"},"source_ref":{"type":"string","title":"Source Ref"},"flow_unit":{"type":"string","title":"Flow Unit","default":"LPM"},"pressure_drop_unit":{"type":"string","title":"Pressure Drop Unit","default":"kPa"},"valid_range":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Valid Range"}},"type":"object","required":["flow","a","b","source_ref"],"title":"EvaluateQuadraticPqCurveRequest"},"FacilityType":{"type":"string","enum":["boarding_alighting_area","boarding_platform"],"title":"FacilityType"},"FailoverCandidateEvaluation":{"properties":{"name":{"type":"string","title":"Name"},"total_time_s":{"type":"number","title":"Total Time S"},"resulting_capacity":{"type":"number","title":"Resulting Capacity"},"meets_time_budget":{"type":"boolean","title":"Meets Time Budget"},"meets_capacity_requirement":{"type":"boolean","title":"Meets Capacity Requirement"},"meets_all_requirements":{"type":"boolean","title":"Meets All Requirements"}},"type":"object","required":["name","total_time_s","resulting_capacity","meets_time_budget","meets_capacity_requirement","meets_all_requirements"],"title":"FailoverCandidateEvaluation"},"FailoverSequenceCandidate":{"properties":{"name":{"type":"string","title":"Name"},"steps":{"items":{"$ref":"#/components/schemas/FailoverSequenceStep"},"type":"array","title":"Steps"},"resulting_capacity":{"type":"number","title":"Resulting Capacity"}},"type":"object","required":["name","steps","resulting_capacity"],"title":"FailoverSequenceCandidate"},"FailoverSequenceEvaluationResult":{"properties":{"required_capacity":{"type":"number","title":"Required Capacity"},"time_budget_s":{"type":"number","title":"Time Budget S"},"candidates":{"items":{"$ref":"#/components/schemas/FailoverCandidateEvaluation"},"type":"array","title":"Candidates"},"fastest_passing_candidate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fastest Passing Candidate"},"provenance":{"$ref":"#/components/schemas/controls_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["required_capacity","time_budget_s","candidates","fastest_passing_candidate","provenance"],"title":"FailoverSequenceEvaluationResult"},"FailoverSequenceStep":{"properties":{"description":{"type":"string","title":"Description"},"duration_s":{"type":"number","title":"Duration S"}},"type":"object","required":["description","duration_s"],"title":"FailoverSequenceStep"},"FaultCurrentResult":{"properties":{"fault_type":{"$ref":"#/components/schemas/FaultType"},"nominal_line_to_line_volts":{"type":"number","title":"Nominal Line To Line Volts"},"fault_current_amps":{"type":"number","title":"Fault Current Amps"},"fault_current_ka":{"type":"number","title":"Fault Current Ka"},"x_over_r":{"type":"number","title":"X Over R"},"z_total_r_ohm":{"type":"number","title":"Z Total R Ohm"},"z_total_x_ohm":{"type":"number","title":"Z Total X Ohm"},"z_total_magnitude_ohm":{"type":"number","title":"Z Total Magnitude Ohm"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["fault_type","nominal_line_to_line_volts","fault_current_amps","fault_current_ka","x_over_r","z_total_r_ohm","z_total_x_ohm","z_total_magnitude_ohm","provenance"],"title":"FaultCurrentResult"},"FaultType":{"type":"string","enum":["three_phase","line_to_line","single_line_to_ground"],"title":"FaultType"},"FlickerCompliance":{"type":"string","enum":["imperceptible","borderline","objectionable"],"title":"FlickerCompliance","description":"IEEE 1453 acceptance tier for a step-change event."},"FlowRateInterpolationResult":{"properties":{"query_x":{"type":"number","title":"Query X"},"x_unit":{"type":"string","title":"X Unit"},"interpolated_y":{"type":"number","title":"Interpolated Y"},"y_unit":{"type":"string","title":"Y Unit"},"within_curve_range":{"type":"boolean","title":"Within Curve Range"},"bracketing_points":{"prefixItems":[{"$ref":"#/components/schemas/CurvePoint"},{"$ref":"#/components/schemas/CurvePoint"}],"type":"array","maxItems":2,"minItems":2,"title":"Bracketing Points"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["query_x","x_unit","interpolated_y","y_unit","within_curve_range","bracketing_points","provenance"],"title":"FlowRateInterpolationResult"},"FramingClassifierConfig":{"properties":{"no_angle_min_deg":{"type":"number","title":"No Angle Min Deg","default":170.0},"light_angle_min_deg":{"type":"number","title":"Light Angle Min Deg","default":130.0},"single_no_angle_min_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Single No Angle Min Deg"},"single_light_angle_min_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Single Light Angle Min Deg"},"double_no_angle_min_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Double No Angle Min Deg"},"double_light_angle_min_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Double Light Angle Min Deg"},"corner_split_deg":{"type":"number","title":"Corner Split Deg","default":90.0},"default_full_min_ratio":{"type":"number","title":"Default Full Min Ratio","default":0.9},"default_reduced_min_ratio":{"type":"number","title":"Default Reduced Min Ratio","default":0.6}},"type":"object","title":"FramingClassifierConfig"},"FramingFault":{"properties":{"crossarm_id":{"type":"string","title":"Crossarm Id"},"crossarm_attachment_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crossarm Attachment Height Ft"},"fault_type":{"type":"string","const":"pin_insulator_single_span","title":"Fault Type"},"single_sided_pins":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Single Sided Pins"},"existing_span_direction_deg":{"type":"number","title":"Existing Span Direction Deg"},"opposite_direction_deg":{"type":"number","title":"Opposite Direction Deg"},"framing_classification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Framing Classification"},"crossarm_direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crossarm Direction Deg"},"insulator_count":{"type":"integer","title":"Insulator Count"},"insulator_details":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Insulator Details"}},"type":"object","required":["crossarm_id","fault_type","single_sided_pins","existing_span_direction_deg","opposite_direction_deg","insulator_count"],"title":"FramingFault","description":"Typed mirror of `detect_framing_faults`'s per-fault dict -- see that module's own\ndocstring for what each field means."},"FrequencyRideThroughZone":{"type":"string","enum":["of2","of1","uf1","uf2"],"title":"FrequencyRideThroughZone","description":"The four named frequency ride-through trip points -- see the standards file's \"Frequency\nride-through\" table. OF = over-frequency, UF = under-frequency; the \"1\"/\"2\" suffix is the\nsource chart's own naming (1 = closer to nominal / less severe, 2 = further from nominal /\nmore severe), matching VoltageRideThroughZone's convention."},"GO95GradeInput":{"properties":{"upper_class":{"type":"string","enum":["H","E","L","C"],"title":"Upper Class"},"lower_class":{"anyOf":[{"type":"string","enum":["H","E","L","C","rr_major","rr_minor"]},{"type":"null"}],"title":"Lower Class"}},"type":"object","required":["upper_class"],"title":"GO95GradeInput"},"GO95GradeRequest":{"properties":{"inp":{"$ref":"#/components/schemas/GO95GradeInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["inp","source_ref"],"title":"GO95GradeRequest"},"GO95ZoneRequest":{"properties":{"elevation_ft":{"type":"number","title":"Elevation Ft"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["elevation_ft","source_ref"],"title":"GO95ZoneRequest"},"GO95ZoneResult":{"properties":{"zone":{"type":"string","enum":["HEAVY","LIGHT"],"title":"Zone"},"values":{"$ref":"#/components/schemas/DistrictOrZoneValues"},"elevation_ft":{"type":"number","title":"Elevation Ft"},"threshold_ft":{"type":"number","title":"Threshold Ft"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["zone","values","elevation_ft","threshold_ft","rule_refs","provenance"],"title":"GO95ZoneResult"},"Gantry":{"properties":{"id":{"type":"string","title":"Id"},"leg_height_ft":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Leg Height Ft"},"leg_base_width_ft":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Leg Base Width Ft"},"leg_count":{"anyOf":[{"type":"integer","minimum":2.0},{"type":"null"}],"title":"Leg Count"},"span_ft":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Span Ft"}},"type":"object","required":["id"],"title":"Gantry","description":"A single lattice gantry (portal-frame dead-end structure) at a substation — the domain-model\nfield named as missing in `render_model.py`'s own docstring (Part LXXIX): `grid-model-forge`\nalready has a real, tested builder (`mesh_library/substations/lattice_gantry.ts`, composing the\nRUS-1724E-200-cited `buildLatticeLeg` shared module) but this repo's own domain model had zero\nrepresentation of a gantry/lattice-leg concept to source it from.\n\n`leg_height_ft`/`leg_base_width_ft` mirror `grid_model_forge_schema.shared_components.\nLatticeLegParams`'s own two REQUIRED fields (no default on that side — a real per-site\nstructural-design fact this repo doesn't invent, per `CLAUDE.md` rule 1's \"engineering choice,\nout of compute scope\" discipline, same reasoning `tube_nominal_size_in` above already states).\n`leg_count`/`span_ft` are optional passthroughs to `LatticeGantryParams`'s own real geometric\nfloor (`span_ft` below `leg_base_width_ft * 1.1` is a rejected geometric impossibility, not an\nengineering judgment) and disclosed-APPROXIMATE schematic default (see that schema's own\ndocstring for the full confidence-tier disclosure — `WebFetch` could not reach a primary\nnumeric source for gantry leg-to-leg spacing) — `render_model.py` passes `span_ft` through only\nwhen actually set, letting the builder's own disclosed default apply otherwise, rather than\nthis repo inventing a second one."},"GasTurbineFrame":{"properties":{"key":{"type":"string","title":"Key"},"oem":{"type":"string","title":"Oem"},"model":{"type":"string","title":"Model"},"description":{"type":"string","title":"Description"},"power_mw":{"type":"number","title":"Power Mw"},"length_mm":{"type":"number","title":"Length Mm"},"width_mm":{"type":"number","title":"Width Mm"},"height_mm":{"type":"number","title":"Height Mm"},"weight_kg":{"type":"number","title":"Weight Kg"},"source":{"type":"string","title":"Source"}},"type":"object","required":["key","oem","model","description","power_mw","length_mm","width_mm","height_mm","weight_kg","source"],"title":"GasTurbineFrame"},"GaugeThreshold":{"properties":{"label":{"type":"string","title":"Label"},"value":{"type":"number","title":"Value"},"meets_threshold":{"type":"boolean","title":"Meets Threshold"}},"type":"object","required":["label","value","meets_threshold"],"title":"GaugeThreshold"},"GenerateCorridorsRequest":{"properties":{"utility_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utility Id"},"profile":{"anyOf":[{"$ref":"#/components/schemas/InlineUtilityProfile"},{"type":"null"}]},"voltage_profile_name":{"type":"string","title":"Voltage Profile Name"},"start":{"$ref":"#/components/schemas/LatLon"},"end":{"$ref":"#/components/schemas/LatLon"},"corridor_percentile":{"type":"number","title":"Corridor Percentile","default":10.0}},"type":"object","required":["voltage_profile_name","start","end"],"title":"GenerateCorridorsRequest"},"GeneratePplldRequest":{"properties":{"poles":{"items":{"$ref":"#/components/schemas/LineDesignPole-Input"},"type":"array","title":"Poles"},"utility_id":{"type":"string","title":"Utility Id"},"loading_area":{"type":"string","title":"Loading Area","default":"Light"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/LineDesignMetadata"},{"type":"null"}]},"links":{"anyOf":[{"items":{"items":{"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},"type":"array"},{"type":"null"}],"title":"Links"},"file_name":{"type":"string","title":"File Name","default":"line_design.pplld"}},"type":"object","required":["poles","utility_id"],"title":"GeneratePplldRequest"},"GeneratePplldResult":{"properties":{"archive_b64":{"type":"string","title":"Archive B64"},"file_name":{"type":"string","title":"File Name"},"utility_id":{"type":"string","title":"Utility Id"},"pole_count":{"type":"integer","title":"Pole Count"},"provenance":{"$ref":"#/components/schemas/ocalc_harness__functions__provenance__Provenance"}},"type":"object","required":["archive_b64","file_name","utility_id","pole_count","provenance"],"title":"GeneratePplldResult"},"GeneratePplxRequest":{"properties":{"pole":{"$ref":"#/components/schemas/OcalcPoleModel-Input"},"utility_id":{"type":"string","title":"Utility Id"},"loading_area":{"type":"string","title":"Loading Area","default":"Light"}},"type":"object","required":["pole","utility_id"],"title":"GeneratePplxRequest"},"GeneratePplxResult":{"properties":{"pplx_xml":{"type":"string","title":"Pplx Xml"},"utility_id":{"type":"string","title":"Utility Id"},"provenance":{"$ref":"#/components/schemas/ocalc_harness__functions__provenance__Provenance"}},"type":"object","required":["pplx_xml","utility_id","provenance"],"title":"GeneratePplxResult"},"GenerateSpidaMultiRequest":{"properties":{"poles":{"items":{"$ref":"#/components/schemas/SpidaPoleModel-Input"},"type":"array","title":"Poles"},"project_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Label"}},"type":"object","required":["poles"],"title":"GenerateSpidaMultiRequest"},"GenerateSpidaRequest":{"properties":{"pole":{"$ref":"#/components/schemas/SpidaPoleModel-Input"},"project_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Label"}},"type":"object","required":["pole"],"title":"GenerateSpidaRequest"},"GenerateSpidaResult":{"properties":{"project_json":{"additionalProperties":true,"type":"object","title":"Project Json"},"provenance":{"$ref":"#/components/schemas/spida_harness__functions__provenance__Provenance"}},"type":"object","required":["project_json","provenance"],"title":"GenerateSpidaResult"},"GeometryInfo":{"properties":{"available":{"type":"boolean","title":"Available"},"obj_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Obj Path"},"vertex_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vertex Count"},"face_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Face Count"},"decimated":{"type":"boolean","title":"Decimated","default":false},"units":{"type":"string","title":"Units","default":"meters"}},"type":"object","required":["available"],"title":"GeometryInfo","description":"Reference-geometry availability for one piece of equipment.\n\nCoordinates in the referenced OBJ file are world-space meters, same frame as\nConnectionPoint. `decimated=True` means the mesh was simplified from the source CAD\nexport to fit a file-size budget -- shape/silhouette accurate, not dimensionally exact\nat small-feature scale. See docs/source-provenance.md for the reduction ratio used."},"GetCduModelRequest":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"GetCduModelRequest"},"GetEquipmentRequest":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"GetEquipmentRequest"},"GetGasTurbineFrameRequest":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"GetGasTurbineFrameRequest"},"Go95AttachmentInput":{"properties":{"attachment_id":{"type":"string","title":"Attachment Id"},"attachment_type":{"type":"string","title":"Attachment Type"},"attachment_height_ft":{"type":"number","title":"Attachment Height Ft"},"attachment_voltage_v":{"type":"number","title":"Attachment Voltage V","default":0.0},"is_trolley":{"type":"boolean","title":"Is Trolley","default":false},"related_attachment_ids":{"items":{"type":"string"},"type":"array","title":"Related Attachment Ids","default":[]}},"type":"object","required":["attachment_id","attachment_type","attachment_height_ft"],"title":"Go95AttachmentInput"},"Go95CrossarmAttachmentInput":{"properties":{"attachment_id":{"type":"string","title":"Attachment Id"},"horizontal_position_ft":{"type":"number","title":"Horizontal Position Ft"},"attachment_voltage_v":{"type":"number","title":"Attachment Voltage V","default":0.0},"is_trolley":{"type":"boolean","title":"Is Trolley","default":false}},"type":"object","required":["attachment_id","horizontal_position_ft"],"title":"Go95CrossarmAttachmentInput"},"Go95CrossarmClearanceRequest":{"properties":{"crossarm":{"$ref":"#/components/schemas/Go95CrossarmInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["crossarm","source_ref"],"title":"Go95CrossarmClearanceRequest"},"Go95CrossarmClearanceResult":{"properties":{"within_width_errors":{"items":{"type":"string"},"type":"array","title":"Within Width Errors"},"clearance_issues":{"items":{"$ref":"#/components/schemas/ClearanceIssue"},"type":"array","title":"Clearance Issues"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["within_width_errors","clearance_issues","provenance"],"title":"Go95CrossarmClearanceResult"},"Go95CrossarmInput":{"properties":{"crossarm_width_ft":{"type":"number","title":"Crossarm Width Ft"},"attachments":{"items":{"$ref":"#/components/schemas/Go95CrossarmAttachmentInput"},"type":"array","title":"Attachments"}},"type":"object","required":["crossarm_width_ft","attachments"],"title":"Go95CrossarmInput"},"Go95PoleClearanceResult":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"clearance_status":{"type":"string","enum":["compliant","non_compliant"],"title":"Clearance Status"},"clearance_issues":{"items":{"$ref":"#/components/schemas/ClearanceIssue"},"type":"array","title":"Clearance Issues"},"table1_issue_count":{"type":"integer","title":"Table1 Issue Count"},"table2_issue_count":{"type":"integer","title":"Table2 Issue Count"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["pole_id","clearance_status","clearance_issues","table1_issue_count","table2_issue_count","provenance"],"title":"Go95PoleClearanceResult"},"Go95PoleClearancesRequest":{"properties":{"pole":{"$ref":"#/components/schemas/Go95PoleInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["pole","source_ref"],"title":"Go95PoleClearancesRequest"},"Go95PoleInput":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"attachments":{"items":{"$ref":"#/components/schemas/Go95AttachmentInput"},"type":"array","title":"Attachments"},"table1_clearance_type":{"type":"number","title":"Table1 Clearance Type","default":3}},"type":"object","required":["pole_id","attachments"],"title":"Go95PoleInput"},"Go95Table1ClearanceRequest":{"properties":{"clearance_type":{"type":"number","title":"Clearance Type"},"voltage_v":{"type":"number","title":"Voltage V"},"source_ref":{"type":"string","title":"Source Ref"},"is_trolley":{"type":"boolean","title":"Is Trolley","default":false}},"type":"object","required":["clearance_type","voltage_v","source_ref"],"title":"Go95Table1ClearanceRequest"},"Go95Table2ClearanceRequest":{"properties":{"clearance_type":{"type":"string","title":"Clearance Type"},"voltage_a_v":{"type":"number","title":"Voltage A V"},"source_ref":{"type":"string","title":"Source Ref"},"voltage_b_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voltage B V"},"is_trolley":{"type":"boolean","title":"Is Trolley","default":false}},"type":"object","required":["clearance_type","voltage_a_v","source_ref"],"title":"Go95Table2ClearanceRequest"},"Go95TableLookupResult":{"properties":{"required":{"type":"number","title":"Required"},"unit":{"type":"string","title":"Unit"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["required","unit","rule_refs","provenance"],"title":"Go95TableLookupResult"},"GradeResult":{"properties":{"grade":{"type":"string","title":"Grade"},"rationale":{"type":"string","title":"Rationale"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["grade","rationale","rule_refs","provenance"],"title":"GradeResult"},"GridResistanceResult":{"properties":{"resistance_ohm":{"type":"number","title":"Resistance Ohm"},"soil_resistivity_ohm_m":{"type":"number","title":"Soil Resistivity Ohm M"},"area_m2":{"type":"number","title":"Area M2"},"total_buried_conductor_length_m":{"type":"number","title":"Total Buried Conductor Length M"},"burial_depth_m":{"type":"number","title":"Burial Depth M"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["resistance_ohm","soil_resistivity_ohm_m","area_m2","total_buried_conductor_length_m","burial_depth_m","provenance"],"title":"GridResistanceResult"},"GroundPotentialRiseResult":{"properties":{"symmetrical_fault_current_amps":{"type":"number","title":"Symmetrical Fault Current Amps"},"split_factor":{"type":"number","title":"Split Factor"},"x_over_r_ratio":{"type":"number","title":"X Over R Ratio"},"fault_duration_sec":{"type":"number","title":"Fault Duration Sec"},"decrement_factor":{"type":"number","title":"Decrement Factor"},"grid_current_amps":{"type":"number","title":"Grid Current Amps"},"grid_resistance_ohm":{"type":"number","title":"Grid Resistance Ohm"},"gpr_volts":{"type":"number","title":"Gpr Volts"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["symmetrical_fault_current_amps","split_factor","x_over_r_ratio","fault_duration_sec","decrement_factor","grid_current_amps","grid_resistance_ohm","gpr_volts","provenance"],"title":"GroundPotentialRiseResult"},"GroundRodResistanceResult":{"properties":{"resistance_ohm":{"type":"number","title":"Resistance Ohm"},"single_rod_resistance_ohm":{"type":"number","title":"Single Rod Resistance Ohm"},"coupling_factor":{"type":"number","title":"Coupling Factor"},"rod_count":{"type":"integer","title":"Rod Count"},"soil_resistivity_ohm_m":{"type":"number","title":"Soil Resistivity Ohm M"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["resistance_ohm","single_rod_resistance_ohm","coupling_factor","rod_count","soil_resistivity_ohm_m","provenance"],"title":"GroundRodResistanceResult"},"GroundingComplianceRequest":{"properties":{"calculated_ohm":{"type":"number","title":"Calculated Ohm"},"source_ref":{"type":"string","title":"Source Ref"},"limit_ohm":{"type":"number","title":"Limit Ohm","default":25.0}},"type":"object","required":["calculated_ohm","source_ref"],"title":"GroundingComplianceRequest"},"GroundingComplianceResult":{"properties":{"is_compliant":{"type":"boolean","title":"Is Compliant"},"calculated_ohm":{"type":"number","title":"Calculated Ohm"},"limit_ohm":{"type":"number","title":"Limit Ohm"},"margin_ohm":{"type":"number","title":"Margin Ohm"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["is_compliant","calculated_ohm","limit_ohm","margin_ohm","provenance"],"title":"GroundingComplianceResult"},"GroundingConfigInput":{"properties":{"rod_count":{"type":"integer","title":"Rod Count","default":1},"rod_length_ft":{"type":"number","title":"Rod Length Ft","default":8.0},"rod_diameter_in":{"type":"number","title":"Rod Diameter In","default":0.625},"rod_spacing_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rod Spacing Ft"}},"type":"object","title":"GroundingConfigInput"},"GroundingGridGeometricFactors":{"properties":{"area_m2":{"type":"number","title":"Area M2"},"perimeter_m":{"type":"number","title":"Perimeter M"},"total_rod_length_m":{"type":"number","title":"Total Rod Length M"},"total_buried_conductor_length_m":{"type":"number","title":"Total Buried Conductor Length M"},"na":{"type":"number","title":"Na"},"nb":{"type":"number","title":"Nb"},"nc":{"type":"number","title":"Nc"},"nd":{"type":"number","title":"Nd"},"n":{"type":"number","title":"N"},"ki":{"type":"number","title":"Ki"},"kh":{"type":"number","title":"Kh"},"kii":{"type":"number","title":"Kii"},"km":{"type":"number","title":"Km"},"ks":{"type":"number","title":"Ks"},"lm":{"type":"number","title":"Lm"},"ls":{"type":"number","title":"Ls"}},"type":"object","required":["area_m2","perimeter_m","total_rod_length_m","total_buried_conductor_length_m","na","nb","nc","nd","n","ki","kh","kii","km","ks","lm","ls"],"title":"GroundingGridGeometricFactors"},"GroundingGridGeometry":{"properties":{"length_x_m":{"type":"number","exclusiveMinimum":0.0,"title":"Length X M","description":"Overall grid dimension in the x direction (Lx)"},"length_y_m":{"type":"number","exclusiveMinimum":0.0,"title":"Length Y M","description":"Overall grid dimension in the y direction (Ly)"},"conductor_spacing_m":{"type":"number","exclusiveMinimum":0.0,"title":"Conductor Spacing M","description":"Uniform mesh conductor spacing (D)"},"conductor_diameter_m":{"type":"number","exclusiveMinimum":0.0,"title":"Conductor Diameter M","description":"Grid conductor diameter (d)"},"burial_depth_m":{"type":"number","exclusiveMinimum":0.0,"title":"Burial Depth M","description":"Grid burial depth (h)"},"conductor_length_m":{"type":"number","exclusiveMinimum":0.0,"title":"Conductor Length M","description":"Total buried horizontal grid conductor length, excluding rods (Lc)"},"num_ground_rods":{"type":"integer","minimum":0.0,"title":"Num Ground Rods","default":0},"ground_rod_length_m":{"type":"number","minimum":0.0,"title":"Ground Rod Length M","description":"Length of each ground rod (Lr) -- all rods assumed equal","default":0.0},"rods_on_perimeter":{"type":"boolean","title":"Rods On Perimeter","description":"True if ground rods run along the grid's perimeter/corners -- changes Kii and the LM formula, per this module's docstring.","default":false}},"type":"object","required":["length_x_m","length_y_m","conductor_spacing_m","conductor_diameter_m","burial_depth_m","conductor_length_m"],"title":"GroundingGridGeometry"},"Guy":{"properties":{"guy_id":{"type":"string","title":"Guy Id"},"guy_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guy Type"},"attachment_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"anchor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anchor Id"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["guy_id"],"title":"Guy"},"GuyInput":{"properties":{"guy_id":{"type":"string","title":"Guy Id"},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"attachment_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Attachment Height Ft"}},"type":"object","required":["guy_id"],"title":"GuyInput","description":"Matches the origin's `guys: list[dict]` shape (`guy_id`/`direction_deg`/\n`attachment_height_ft`), typed."},"GuyStrengthFactorInput":{"properties":{"code":{"type":"string","enum":["nesc","go95"],"title":"Code"},"grade":{"type":"string","title":"Grade"},"install_type":{"type":"string","enum":["install","replacement"],"title":"Install Type","default":"install"}},"type":"object","required":["code","grade"],"title":"GuyStrengthFactorInput"},"GuyStrengthFactorRequest":{"properties":{"inp":{"$ref":"#/components/schemas/GuyStrengthFactorInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["inp","source_ref"],"title":"GuyStrengthFactorRequest"},"GuyStrengthFactorResult":{"properties":{"factor":{"type":"number","title":"Factor"},"rationale":{"type":"string","title":"Rationale"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["factor","rationale","rule_refs","provenance"],"title":"GuyStrengthFactorResult"},"GuyingBisectorGuyLoadsInput":{"properties":{"wind_load_factor":{"type":"number","title":"Wind Load Factor"},"tension_load_factor":{"type":"number","title":"Tension Load Factor"},"conductor_wind_load_per_ft_lbs":{"type":"number","title":"Conductor Wind Load Per Ft Lbs"},"horizontal_span_ft":{"type":"number","title":"Horizontal Span Ft"},"line_angle_deg":{"type":"number","title":"Line Angle Deg"},"conductor_tension_lbs":{"type":"number","title":"Conductor Tension Lbs"},"wind_load_on_pole_lbs":{"type":"number","title":"Wind Load On Pole Lbs"},"attachment_height_above_ground_ft":{"type":"number","title":"Attachment Height Above Ground Ft"},"guy_lead_distance_ft":{"type":"number","title":"Guy Lead Distance Ft"}},"type":"object","required":["wind_load_factor","tension_load_factor","conductor_wind_load_per_ft_lbs","horizontal_span_ft","line_angle_deg","conductor_tension_lbs","wind_load_on_pole_lbs","attachment_height_above_ground_ft","guy_lead_distance_ft"],"title":"GuyingBisectorGuyLoadsInput"},"GuyingColumnBucklingLoadInput":{"properties":{"end_condition":{"type":"string","title":"End Condition"},"modulus_of_elasticity_psi":{"type":"number","title":"Modulus Of Elasticity Psi"},"moment_of_inertia_at_guy_attachment_in4":{"type":"number","title":"Moment Of Inertia At Guy Attachment In4"},"unbraced_length_in":{"type":"number","title":"Unbraced Length In"},"diameter_groundline_in":{"type":"number","title":"Diameter Groundline In"},"diameter_at_guy_attachment_in":{"type":"number","title":"Diameter At Guy Attachment In"}},"type":"object","required":["end_condition","modulus_of_elasticity_psi","moment_of_inertia_at_guy_attachment_in4","unbraced_length_in","diameter_groundline_in","diameter_at_guy_attachment_in"],"title":"GuyingColumnBucklingLoadInput"},"HFrameBearingRelationshipInput":{"properties":{"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"},"height_to_crossbrace_ft":{"type":"number","title":"Height To Crossbrace Ft"},"ground_wire_weight_per_ft_lbs":{"type":"number","title":"Ground Wire Weight Per Ft Lbs"},"conductor_weight_per_ft_lbs":{"type":"number","title":"Conductor Weight Per Ft Lbs"},"pole_spacing_ft":{"type":"number","title":"Pole Spacing Ft"},"w1_lbs":{"type":"number","title":"W1 Lbs"},"w2_lbs":{"type":"number","title":"W2 Lbs"},"pole_weight_lbs":{"type":"number","title":"Pole Weight Lbs"},"x_term_ft_lbs":{"type":"number","title":"X Term Ft Lbs"},"y_term_ft_lbs":{"type":"number","title":"Y Term Ft Lbs"}},"type":"object","required":["total_transverse_unit_load_lbs_per_ft","height_to_crossbrace_ft","ground_wire_weight_per_ft_lbs","conductor_weight_per_ft_lbs","pole_spacing_ft","w1_lbs","w2_lbs","pole_weight_lbs","x_term_ft_lbs","y_term_ft_lbs"],"title":"HFrameBearingRelationshipInput"},"HFrameCrossbraceUTermInput":{"properties":{"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"height_above_ground_to_lower_reference_ft":{"type":"number","title":"Height Above Ground To Lower Reference Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_lower_reference_in":{"type":"number","title":"Diameter At Lower Reference In"}},"type":"object","required":["load_factor","wind_pressure_psf","height_above_ground_to_lower_reference_ft","diameter_top_in","diameter_at_lower_reference_in"],"title":"HFrameCrossbraceUTermInput"},"HFrameCrossbraceVTermInput":{"properties":{"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"height_to_upper_reference_ft":{"type":"number","title":"Height To Upper Reference Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_upper_reference_in":{"type":"number","title":"Diameter At Upper Reference In"}},"type":"object","required":["load_factor","wind_pressure_psf","height_to_upper_reference_ft","diameter_top_in","diameter_at_upper_reference_in"],"title":"HFrameCrossbraceVTermInput"},"HFrameHorizontalSpanAtAInput":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"moment_capacity_at_a_ft_lbs":{"type":"number","title":"Moment Capacity At A Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"height_above_ground_to_lower_crossbrace_ft":{"type":"number","title":"Height Above Ground To Lower Crossbrace Ft"},"lower_segment_length_ft":{"type":"number","title":"Lower Segment Length Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_lower_crossbrace_in":{"type":"number","title":"Diameter At Lower Crossbrace In"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"}},"type":"object","required":["strength_factor","moment_capacity_at_a_ft_lbs","load_factor","wind_pressure_psf","height_above_ground_to_lower_crossbrace_ft","lower_segment_length_ft","diameter_top_in","diameter_at_lower_crossbrace_in","total_transverse_unit_load_lbs_per_ft"],"title":"HFrameHorizontalSpanAtAInput"},"HFrameHorizontalSpanAtBInput":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"moment_capacity_at_b_ft_lbs":{"type":"number","title":"Moment Capacity At B Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"height_diff_upper_segment_ft":{"type":"number","title":"Height Diff Upper Segment Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_upper_reference_in":{"type":"number","title":"Diameter At Upper Reference In"},"upper_crossbrace_to_crossarm_distance_ft":{"type":"number","title":"Upper Crossbrace To Crossarm Distance Ft"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"}},"type":"object","required":["strength_factor","moment_capacity_at_b_ft_lbs","load_factor","wind_pressure_psf","height_diff_upper_segment_ft","diameter_top_in","diameter_at_upper_reference_in","upper_crossbrace_to_crossarm_distance_ft","total_transverse_unit_load_lbs_per_ft"],"title":"HFrameHorizontalSpanAtBInput"},"HFrameHorizontalSpanAtBStructure2Input":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"moment_capacity_at_b_ft_lbs":{"type":"number","title":"Moment Capacity At B Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"upper_segment_height_ft":{"type":"number","title":"Upper Segment Height Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_b_reference_in":{"type":"number","title":"Diameter At B Reference In"},"ground_wire_wind_unit_load_lbs_per_ft":{"type":"number","title":"Ground Wire Wind Unit Load Lbs Per Ft"}},"type":"object","required":["strength_factor","moment_capacity_at_b_ft_lbs","load_factor","wind_pressure_psf","upper_segment_height_ft","diameter_top_in","diameter_at_b_reference_in","ground_wire_wind_unit_load_lbs_per_ft"],"title":"HFrameHorizontalSpanAtBStructure2Input"},"HFrameHorizontalSpanAtDInput":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"moment_capacity_at_d_ft_lbs":{"type":"number","title":"Moment Capacity At D Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"height_above_ground_to_lower_crossbrace_ft":{"type":"number","title":"Height Above Ground To Lower Crossbrace Ft"},"upper_lower_segment_length_ft":{"type":"number","title":"Upper Lower Segment Length Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_lower_crossbrace_in":{"type":"number","title":"Diameter At Lower Crossbrace In"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"}},"type":"object","required":["strength_factor","moment_capacity_at_d_ft_lbs","load_factor","wind_pressure_psf","height_above_ground_to_lower_crossbrace_ft","upper_lower_segment_length_ft","diameter_top_in","diameter_at_lower_crossbrace_in","total_transverse_unit_load_lbs_per_ft"],"title":"HFrameHorizontalSpanAtDInput"},"HFrameHorizontalSpanAtEInput":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"moment_capacity_at_e_ft_lbs":{"type":"number","title":"Moment Capacity At E Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"height_diff_upper_segment_ft":{"type":"number","title":"Height Diff Upper Segment Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_upper_reference_in":{"type":"number","title":"Diameter At Upper Reference In"},"lower_crossbrace_to_crossarm_distance_ft":{"type":"number","title":"Lower Crossbrace To Crossarm Distance Ft"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"}},"type":"object","required":["strength_factor","moment_capacity_at_e_ft_lbs","load_factor","wind_pressure_psf","height_diff_upper_segment_ft","diameter_top_in","diameter_at_upper_reference_in","lower_crossbrace_to_crossarm_distance_ft","total_transverse_unit_load_lbs_per_ft"],"title":"HFrameHorizontalSpanAtEInput"},"HFrameHorizontalSpanAtEStructure2Input":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"moment_capacity_at_e_ft_lbs":{"type":"number","title":"Moment Capacity At E Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"upper_segment_total_height_ft":{"type":"number","title":"Upper Segment Total Height Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_e_reference_in":{"type":"number","title":"Diameter At E Reference In"},"lower_upper_segment_distance_ft":{"type":"number","title":"Lower Upper Segment Distance Ft"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"}},"type":"object","required":["strength_factor","moment_capacity_at_e_ft_lbs","load_factor","wind_pressure_psf","upper_segment_total_height_ft","diameter_top_in","diameter_at_e_reference_in","lower_upper_segment_distance_ft","total_transverse_unit_load_lbs_per_ft"],"title":"HFrameHorizontalSpanAtEStructure2Input"},"HFrameHorizontalSpanAtEStructure3Input":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"moment_capacity_at_e_ft_lbs":{"type":"number","title":"Moment Capacity At E Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"upper_segment_length_ft":{"type":"number","title":"Upper Segment Length Ft"},"crossbrace_segment_length_ft":{"type":"number","title":"Crossbrace Segment Length Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_b_reference_in":{"type":"number","title":"Diameter At B Reference In"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"}},"type":"object","required":["strength_factor","moment_capacity_at_e_ft_lbs","load_factor","wind_pressure_psf","upper_segment_length_ft","crossbrace_segment_length_ft","diameter_top_in","diameter_at_b_reference_in","total_transverse_unit_load_lbs_per_ft"],"title":"HFrameHorizontalSpanAtEStructure3Input"},"HFrameHorizontalSpanLimitedByCrossbraceInput":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"crossbrace_max_load_lbs":{"type":"number","title":"Crossbrace Max Load Lbs"},"pole_spacing_ft":{"type":"number","title":"Pole Spacing Ft"},"u_term_ft_lbs":{"type":"number","title":"U Term Ft Lbs"},"v_term_ft_lbs":{"type":"number","title":"V Term Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"},"height_to_crossbrace_minus_reference_ft":{"type":"number","title":"Height To Crossbrace Minus Reference Ft"}},"type":"object","required":["strength_factor","crossbrace_max_load_lbs","pole_spacing_ft","u_term_ft_lbs","v_term_ft_lbs","load_factor","total_transverse_unit_load_lbs_per_ft","height_to_crossbrace_minus_reference_ft"],"title":"HFrameHorizontalSpanLimitedByCrossbraceInput"},"HFrameHorizontalSpanLimitedByCrossbraceNoOffsetInput":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"crossbrace_max_load_lbs":{"type":"number","title":"Crossbrace Max Load Lbs"},"pole_spacing_ft":{"type":"number","title":"Pole Spacing Ft"},"u_term_ft_lbs":{"type":"number","title":"U Term Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"},"height_to_crossbrace_ft":{"type":"number","title":"Height To Crossbrace Ft"}},"type":"object","required":["strength_factor","crossbrace_max_load_lbs","pole_spacing_ft","u_term_ft_lbs","load_factor","total_transverse_unit_load_lbs_per_ft","height_to_crossbrace_ft"],"title":"HFrameHorizontalSpanLimitedByCrossbraceNoOffsetInput"},"HFrameHorizontalSpanStructure1Input":{"properties":{"strength_factor":{"type":"number","title":"Strength Factor"},"moment_capacity_at_a_ft_lbs":{"type":"number","title":"Moment Capacity At A Ft Lbs"},"load_factor":{"type":"number","title":"Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"pole_height_above_ground_ft":{"type":"number","title":"Pole Height Above Ground Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_groundline_in":{"type":"number","title":"Diameter At Groundline In"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"},"moment_arm_of_resultant_load_ft":{"type":"number","title":"Moment Arm Of Resultant Load Ft"}},"type":"object","required":["strength_factor","moment_capacity_at_a_ft_lbs","load_factor","wind_pressure_psf","pole_height_above_ground_ft","diameter_top_in","diameter_at_groundline_in","total_transverse_unit_load_lbs_per_ft","moment_arm_of_resultant_load_ft"],"title":"HFrameHorizontalSpanStructure1Input"},"HFramePointOfContraflexureRatioInput":{"properties":{"circumference_at_bottom_in":{"type":"number","title":"Circumference At Bottom In"},"circumference_at_top_in":{"type":"number","title":"Circumference At Top In"}},"type":"object","required":["circumference_at_bottom_in","circumference_at_top_in"],"title":"HFramePointOfContraflexureRatioInput"},"HFrameReactionAtBaseStructure1Input":{"properties":{"load_factor":{"type":"number","title":"Load Factor"},"ground_wire_weight_lbs":{"type":"number","title":"Ground Wire Weight Lbs"},"total_conductor_weight_lbs":{"type":"number","title":"Total Conductor Weight Lbs"},"pole_weight_lbs":{"type":"number","title":"Pole Weight Lbs"}},"type":"object","required":["load_factor","ground_wire_weight_lbs","total_conductor_weight_lbs","pole_weight_lbs"],"title":"HFrameReactionAtBaseStructure1Input"},"HFrameUpliftBearingXTermInput":{"properties":{"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"height_above_ground_to_lower_reference_ft":{"type":"number","title":"Height Above Ground To Lower Reference Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_lower_reference_in":{"type":"number","title":"Diameter At Lower Reference In"},"distance_groundline_to_lower_reference_ft":{"type":"number","title":"Distance Groundline To Lower Reference Ft"}},"type":"object","required":["wind_pressure_psf","height_above_ground_to_lower_reference_ft","diameter_top_in","diameter_at_lower_reference_in","distance_groundline_to_lower_reference_ft"],"title":"HFrameUpliftBearingXTermInput"},"HFrameUpliftBearingYTermInput":{"properties":{"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"pole_height_above_ground_ft":{"type":"number","title":"Pole Height Above Ground Ft"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_groundline_in":{"type":"number","title":"Diameter At Groundline In"}},"type":"object","required":["wind_pressure_psf","pole_height_above_ground_ft","diameter_top_in","diameter_at_groundline_in"],"title":"HFrameUpliftBearingYTermInput"},"HFrameUpliftRelationshipInput":{"properties":{"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"},"height_to_crossbrace_ft":{"type":"number","title":"Height To Crossbrace Ft"},"ground_wire_weight_per_ft_lbs":{"type":"number","title":"Ground Wire Weight Per Ft Lbs"},"conductor_weight_per_ft_lbs":{"type":"number","title":"Conductor Weight Per Ft Lbs"},"pole_spacing_ft":{"type":"number","title":"Pole Spacing Ft"},"w1_lbs":{"type":"number","title":"W1 Lbs"},"pole_weight_lbs":{"type":"number","title":"Pole Weight Lbs"},"x_term_ft_lbs":{"type":"number","title":"X Term Ft Lbs"},"y_term_ft_lbs":{"type":"number","title":"Y Term Ft Lbs"}},"type":"object","required":["total_transverse_unit_load_lbs_per_ft","height_to_crossbrace_ft","ground_wire_weight_per_ft_lbs","conductor_weight_per_ft_lbs","pole_spacing_ft","w1_lbs","pole_weight_lbs","x_term_ft_lbs","y_term_ft_lbs"],"title":"HFrameUpliftRelationshipInput"},"HFrameW1SkinFrictionResistanceInput":{"properties":{"presumptive_skin_friction_psf":{"type":"number","title":"Presumptive Skin Friction Psf"},"embedment_depth_ft":{"type":"number","title":"Embedment Depth Ft"},"average_pole_diameter_ft":{"type":"number","title":"Average Pole Diameter Ft"},"safety_factor":{"type":"number","title":"Safety Factor"}},"type":"object","required":["presumptive_skin_friction_psf","embedment_depth_ft","average_pole_diameter_ft","safety_factor"],"title":"HFrameW1SkinFrictionResistanceInput"},"HFrameW2BearingResistanceInput":{"properties":{"pole_butt_diameter_ft":{"type":"number","title":"Pole Butt Diameter Ft"},"ultimate_soil_bearing_resistance_psf":{"type":"number","title":"Ultimate Soil Bearing Resistance Psf"},"safety_factor":{"type":"number","title":"Safety Factor"}},"type":"object","required":["pole_butt_diameter_ft","ultimate_soil_bearing_resistance_psf","safety_factor"],"title":"HFrameW2BearingResistanceInput"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HandrailContext":{"type":"string","enum":["ramp","stair","other_pedestrian_circulation_path"],"title":"HandrailContext","description":"R409.10's extension minimums differ by context — see module doc comment. OTHER covers a\nhandrail voluntarily provided on a pedestrian circulation path outside a ramp/stair run, for\nwhich R409.10 states no extension requirement at all (extensions only reference ramp runs and\nstair flights)."},"HeatLoadAggregateResult":{"properties":{"total_liquid_kw":{"type":"number","title":"Total Liquid Kw"},"total_air_kw":{"type":"number","title":"Total Air Kw"},"total_kw":{"type":"number","title":"Total Kw"},"rack_count":{"type":"integer","title":"Rack Count"},"per_rack":{"items":{"$ref":"#/components/schemas/RackThermalLoad"},"type":"array","title":"Per Rack"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["total_liquid_kw","total_air_kw","total_kw","rack_count","per_rack","provenance"],"title":"HeatLoadAggregateResult"},"HottestSpotResult":{"properties":{"hottest_spot_temp_c":{"type":"number","title":"Hottest Spot Temp C"},"top_oil_rise_c":{"type":"number","title":"Top Oil Rise C"},"hottest_spot_rise_c":{"type":"number","title":"Hottest Spot Rise C"},"per_unit_load":{"type":"number","title":"Per Unit Load"},"ambient_c":{"type":"number","title":"Ambient C"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["hottest_spot_temp_c","top_oil_rise_c","hottest_spot_rise_c","per_unit_load","ambient_c","provenance"],"title":"HottestSpotResult"},"IceWindLoading":{"properties":{"temp_f":{"type":"number","title":"Temp F"},"ice_radial_in":{"type":"number","title":"Ice Radial In","default":0.0},"wind_psf":{"type":"number","title":"Wind Psf","default":0.0},"constant_k_lb_per_ft":{"type":"number","title":"Constant K Lb Per Ft","default":0.0}},"type":"object","required":["temp_f"],"title":"IceWindLoading"},"ImpedanceSegment":{"properties":{"resistance_ohm_per_1000ft":{"type":"number","title":"Resistance Ohm Per 1000Ft"},"reactance_ohm_per_1000ft":{"type":"number","title":"Reactance Ohm Per 1000Ft"},"length_ft":{"type":"number","title":"Length Ft"}},"type":"object","required":["resistance_ohm_per_1000ft","reactance_ohm_per_1000ft","length_ft"],"title":"ImpedanceSegment"},"InducedSheathVoltageGradientResult":{"properties":{"induced_voltage_gradient_v_per_m":{"type":"number","title":"Induced Voltage Gradient V Per M"},"sheath_circuit_reactance_ohm_per_m":{"type":"number","title":"Sheath Circuit Reactance Ohm Per M"},"conductor_spacing_m":{"type":"number","title":"Conductor Spacing M"},"sheath_mean_diameter_m":{"type":"number","title":"Sheath Mean Diameter M"},"phase_current_amps":{"type":"number","title":"Phase Current Amps"},"frequency_hz":{"type":"number","title":"Frequency Hz"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["induced_voltage_gradient_v_per_m","sheath_circuit_reactance_ohm_per_m","conductor_spacing_m","sheath_mean_diameter_m","phase_current_amps","frequency_hz","provenance"],"title":"InducedSheathVoltageGradientResult"},"InletTemperatureEnvelopeResult":{"properties":{"supply_air_temperature_c":{"type":"number","title":"Supply Air Temperature C"},"temperature_rise_k":{"type":"number","title":"Temperature Rise K"},"inlet_air_temperature_c":{"type":"number","title":"Inlet Air Temperature C"},"envelope_class":{"type":"string","title":"Envelope Class"},"recommended_low_c":{"type":"number","title":"Recommended Low C"},"recommended_high_c":{"type":"number","title":"Recommended High C"},"allowable_low_c":{"type":"number","title":"Allowable Low C"},"allowable_high_c":{"type":"number","title":"Allowable High C"},"within_recommended":{"type":"boolean","title":"Within Recommended"},"within_allowable":{"type":"boolean","title":"Within Allowable"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["supply_air_temperature_c","temperature_rise_k","inlet_air_temperature_c","envelope_class","recommended_low_c","recommended_high_c","allowable_low_c","allowable_high_c","within_recommended","within_allowable","provenance"],"title":"InletTemperatureEnvelopeResult"},"InlineUtilityProfile":{"properties":{"layer_weights":{"additionalProperties":{"type":"number"},"type":"object","title":"Layer Weights"},"states":{"items":{"type":"string"},"type":"array","title":"States","default":[]},"layer_keys":{"items":{"type":"string"},"type":"array","title":"Layer Keys","default":[]},"regional_overlay_keys":{"items":{"type":"string"},"type":"array","title":"Regional Overlay Keys","default":[]}},"type":"object","required":["layer_weights"],"title":"InlineUtilityProfile","description":"A fully self-contained siting profile carried directly in the request —\nlets /corridors, /routes, and /retrain run as a pure stateless call with\nno Firestore-persisted profile required: pass your own weights, get a\nroute back, nothing saved anywhere. See `GenerateCorridorsRequest`."},"Insulator-Output":{"properties":{"insulator_id":{"type":"string","title":"Insulator Id"},"insulator_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insulator Type"},"crossarm_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crossarm Id"},"attachment_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"vertical_offset":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"horizontal_offset":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"spans":{"items":{"$ref":"#/components/schemas/Span"},"type":"array","title":"Spans"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["insulator_id"],"title":"Insulator"},"InsulatorRequiredVerticalSpanInput":{"properties":{"swing_angle_deg":{"type":"number","title":"Swing Angle Deg"},"conductor_tension_lbs":{"type":"number","title":"Conductor Tension Lbs"},"conductor_weight_per_ft_lbs":{"type":"number","title":"Conductor Weight Per Ft Lbs"},"insulator_weight_lbs":{"type":"number","title":"Insulator Weight Lbs"},"horizontal_span_ft":{"type":"number","title":"Horizontal Span Ft"},"line_angle_deg":{"type":"number","title":"Line Angle Deg","default":0.0},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf","default":0.0},"conductor_diameter_in":{"type":"number","title":"Conductor Diameter In","default":0.0},"line_angle_pulls_toward_structure":{"type":"boolean","title":"Line Angle Pulls Toward Structure","default":true}},"type":"object","required":["swing_angle_deg","conductor_tension_lbs","conductor_weight_per_ft_lbs","insulator_weight_lbs","horizontal_span_ft"],"title":"InsulatorRequiredVerticalSpanInput"},"InsulatorSwingAngleInput":{"properties":{"conductor_tension_lbs":{"type":"number","title":"Conductor Tension Lbs"},"conductor_weight_per_ft_lbs":{"type":"number","title":"Conductor Weight Per Ft Lbs"},"insulator_weight_lbs":{"type":"number","title":"Insulator Weight Lbs"},"horizontal_span_ft":{"type":"number","title":"Horizontal Span Ft"},"vertical_span_ft":{"type":"number","title":"Vertical Span Ft"},"line_angle_deg":{"type":"number","title":"Line Angle Deg","default":0.0},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf","default":0.0},"conductor_diameter_in":{"type":"number","title":"Conductor Diameter In","default":0.0},"line_angle_pulls_toward_structure":{"type":"boolean","title":"Line Angle Pulls Toward Structure","default":true}},"type":"object","required":["conductor_tension_lbs","conductor_weight_per_ft_lbs","insulator_weight_lbs","horizontal_span_ft","vertical_span_ft"],"title":"InsulatorSwingAngleInput"},"InsulatorUpliftRequest":{"properties":{"poles_in_route_order":{"items":{"$ref":"#/components/schemas/UpliftPoleInput"},"type":"array","title":"Poles In Route Order"},"source_ref":{"type":"string","title":"Source Ref"},"ice_radial_in":{"type":"number","title":"Ice Radial In","default":0.0}},"type":"object","required":["poles_in_route_order","source_ref"],"title":"InsulatorUpliftRequest"},"InsulatorUpliftResult":{"properties":{"findings":{"items":{"$ref":"#/components/schemas/UpliftFinding"},"type":"array","title":"Findings"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["findings","provenance"],"title":"InsulatorUpliftResult"},"InsulatorValidationInput":{"properties":{"insulator_id":{"type":"string","title":"Insulator Id"},"insulator_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insulator Type"},"insulator_offset_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Insulator Offset In"},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"spans":{"items":{"$ref":"#/components/schemas/SpanValidationInput"},"type":"array","title":"Spans"}},"type":"object","required":["insulator_id"],"title":"InsulatorValidationInput"},"InterpolateFlowRateCurveRequest":{"properties":{"query_x":{"type":"number","title":"Query X"},"curve_points":{"items":{"$ref":"#/components/schemas/CurvePoint"},"type":"array","title":"Curve Points"},"source_ref":{"type":"string","title":"Source Ref"},"x_unit":{"type":"string","title":"X Unit","default":"degC"},"y_unit":{"type":"string","title":"Y Unit","default":"LPM"}},"type":"object","required":["query_x","curve_points","source_ref"],"title":"InterpolateFlowRateCurveRequest"},"LatLon":{"properties":{"lat":{"type":"number","title":"Lat"},"lon":{"type":"number","title":"Lon"}},"type":"object","required":["lat","lon"],"title":"LatLon"},"LatticeTower":{"properties":{"node_id":{"type":"string","title":"Node Id"},"provenance":{"anyOf":[{"$ref":"#/components/schemas/utm_agent_harness__ontology__provenance__Provenance"},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"height_m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Height M"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"foundation_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Foundation Type"},"attachment_ids":{"items":{"type":"string"},"type":"array","title":"Attachment Ids"},"leg_count":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Leg Count"},"base_width_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Base Width M"},"body_extension_m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Body Extension M"},"joints":{"items":{"$ref":"#/components/schemas/LatticeTowerJoint"},"type":"array","title":"Joints"},"members":{"items":{"$ref":"#/components/schemas/LatticeTowerMember"},"type":"array","title":"Members"},"groups":{"items":{"$ref":"#/components/schemas/LatticeTowerGroup"},"type":"array","title":"Groups"}},"additionalProperties":true,"type":"object","required":["node_id"],"title":"LatticeTower"},"LatticeTowerGroup":{"properties":{"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"size":{"type":"string","title":"Size"},"material":{"type":"string","title":"Material"},"angle_type":{"type":"string","title":"Angle Type"}},"additionalProperties":true,"type":"object","required":["label","description","size","material","angle_type"],"title":"LatticeTowerGroup","description":"One member-group/section-property record — field shape traced directly to\n`pls_suite_parsing.tower.Group` (Part XXX). `size`/`angle_type` are carried verbatim as\nfree-text, same as the parser itself keeps them (no resolved numeric dimensions exist in\n`pls-suite-parsing`'s current output — Part XXX item 3)."},"LatticeTowerJoint":{"properties":{"label":{"type":"string","title":"Label"},"x_m":{"type":"number","title":"X M"},"y_m":{"type":"number","title":"Y M"},"z_m":{"type":"number","title":"Z M"},"restraints":{"anyOf":[{"prefixItems":[{"type":"integer"},{"type":"integer"},{"type":"integer"},{"type":"integer"},{"type":"integer"},{"type":"integer"}],"type":"array","maxItems":6,"minItems":6},{"type":"null"}],"title":"Restraints"}},"additionalProperties":true,"type":"object","required":["label","x_m","y_m","z_m"],"title":"LatticeTowerJoint","description":"One structural joint of a real lattice tower FE model — field shape traced directly to\n`pls_suite_parsing.tower.Joint` (gateway_core_integration_plan.md Part XXX), not invented.\nNot a `NodeBase`/graph node in its own right (no `node_id`) — it rides on the owning\n`LatticeTower`, same \"detail rides on the owning node\" convention `body_extension_m` already\nuses below, since a joint has no meaning addressed outside its own tower's joint list.\n\nDeliberately narrower than the parser's own `Joint` dataclass: `has_master`/`symmetry_code`/\n`relative_dist`/`from_joint`/`to_joint`/`is_secondary`/`fraction` (PLS's own secondary-joint\ninterpolation bookkeeping) are real fields in the parser output but are not needed to place a\njoint in 3D space for rendering — left out here as a deliberate scope exclusion, not an\noversight (Part XXX item 2)."},"LatticeTowerMember":{"properties":{"from_joint":{"type":"string","title":"From Joint"},"to_joint":{"type":"string","title":"To Joint"},"group":{"type":"string","title":"Group"},"section":{"type":"string","title":"Section"}},"additionalProperties":true,"type":"object","required":["from_joint","to_joint","group","section"],"title":"LatticeTowerMember","description":"One angle-member connectivity record — field shape traced directly to\n`pls_suite_parsing.tower.AngleMember` (Part XXX). `group`/`section` are free-text references\n(into `LatticeTowerGroup.label` / a group's own section designation), NOT resolved\ncross-sectional dimensions — the parser has no structured reader for the `STEEL MATERIAL\nFILE`/`ANG FILE` sub-documents that would resolve them (Part XXX item 3, a real, separate,\nnot-yet-built parsing gap). A renderer consuming this field needs a schematic-by-role\nplaceholder profile until that gap closes, not a silent assumption that `section` is a\nresolved dimension.\n\nBolt/eccentricity/effective-length-factor fields (`sym_code`/`ecc_code`/`res_code`/`rlx`/\n`rly`/`rlz`/`num_bolts`/`num_holes`/`num_shear_planes`/`leg_connect_code`/\n`edge_spacing_fields`) are real in the parser output but, like `Joint`'s excluded fields above,\nnot needed for rendering geometry — left out as a deliberate scope exclusion (Part XXX item 2)."},"Line":{"properties":{"poles":{"items":{"$ref":"#/components/schemas/LinePole"},"type":"array","title":"Poles"},"spans":{"items":{"$ref":"#/components/schemas/LineSpan"},"type":"array","title":"Spans"}},"type":"object","required":["poles","spans"],"title":"Line"},"LineConstantsResult":{"properties":{"gmr_ft":{"type":"number","title":"Gmr Ft"},"rac_ohm_per_mile":{"type":"number","title":"Rac Ohm Per Mile"},"gmd_ft":{"type":"number","title":"Gmd Ft"},"de_ft":{"type":"number","title":"De Ft"},"earth_resistivity_ohm_m":{"type":"number","title":"Earth Resistivity Ohm M"},"frequency_hz":{"type":"number","title":"Frequency Hz"},"r1_ohm_per_mile":{"type":"number","title":"R1 Ohm Per Mile"},"x1_ohm_per_mile":{"type":"number","title":"X1 Ohm Per Mile"},"z1_magnitude_ohm_per_mile":{"type":"number","title":"Z1 Magnitude Ohm Per Mile"},"b1_us_per_mile":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"B1 Us Per Mile"},"r0_ohm_per_mile":{"type":"number","title":"R0 Ohm Per Mile"},"x0_ohm_per_mile":{"type":"number","title":"X0 Ohm Per Mile"},"z0_magnitude_ohm_per_mile":{"type":"number","title":"Z0 Magnitude Ohm Per Mile"},"re_earth_return_ohm_per_mile":{"type":"number","title":"Re Earth Return Ohm Per Mile"},"r0_over_r1":{"type":"number","title":"R0 Over R1"},"x0_over_x1":{"type":"number","title":"X0 Over X1"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["gmr_ft","rac_ohm_per_mile","gmd_ft","de_ft","earth_resistivity_ohm_m","frequency_hz","r1_ohm_per_mile","x1_ohm_per_mile","z1_magnitude_ohm_per_mile","b1_us_per_mile","r0_ohm_per_mile","x0_ohm_per_mile","z0_magnitude_ohm_per_mile","re_earth_return_ohm_per_mile","r0_over_r1","x0_over_x1","provenance"],"title":"LineConstantsResult"},"LineDesignLink":{"properties":{"link_id":{"type":"string","title":"Link Id"},"members":{"items":{"$ref":"#/components/schemas/LineDesignLinkMember"},"type":"array","title":"Members"}},"additionalProperties":true,"type":"object","required":["link_id"],"title":"LineDesignLink"},"LineDesignLinkMember":{"properties":{"pole_guid":{"type":"string","title":"Pole Guid"},"element_kind":{"type":"string","title":"Element Kind"},"element_id":{"type":"string","title":"Element Id"}},"additionalProperties":true,"type":"object","required":["pole_guid","element_kind","element_id"],"title":"LineDesignLinkMember"},"LineDesignMetadata":{"properties":{"mbr_min_lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mbr Min Lat"},"mbr_min_lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mbr Min Lon"},"mbr_max_lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mbr Max Lat"},"mbr_max_lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mbr Max Lon"},"viewport_lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Viewport Lat"},"viewport_lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Viewport Lon"},"viewport_zoom":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Viewport Zoom"},"display_shapefiles":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Display Shapefiles"},"display_map_tiles":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Display Map Tiles"},"shape_render_infos":{"items":{"$ref":"#/components/schemas/LineDesignShapeRenderInfo"},"type":"array","title":"Shape Render Infos"},"named_sets":{"items":{"$ref":"#/components/schemas/LineDesignNamedSet"},"type":"array","title":"Named Sets"},"surface_obstructions":{"items":{"$ref":"#/components/schemas/LineDesignSurfaceObstruction"},"type":"array","title":"Surface Obstructions"},"in_place_items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"In Place Items"}},"additionalProperties":true,"type":"object","title":"LineDesignMetadata"},"LineDesignNamedSet":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"checked_guids":{"items":{"type":"string"},"type":"array","title":"Checked Guids"},"order_guids":{"items":{"type":"string"},"type":"array","title":"Order Guids"}},"additionalProperties":true,"type":"object","title":"LineDesignNamedSet"},"LineDesignPole-Input":{"properties":{"pole_guid":{"type":"string","title":"Pole Guid"},"entry_name":{"type":"string","title":"Entry Name"},"pole_model":{"$ref":"#/components/schemas/OcalcPoleModel-Input"},"globals_records":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Globals Records"}},"additionalProperties":true,"type":"object","required":["pole_guid","entry_name","pole_model"],"title":"LineDesignPole"},"LineDesignPole-Output":{"properties":{"pole_guid":{"type":"string","title":"Pole Guid"},"entry_name":{"type":"string","title":"Entry Name"},"pole_model":{"$ref":"#/components/schemas/OcalcPoleModel-Output"},"globals_records":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Globals Records"}},"additionalProperties":true,"type":"object","required":["pole_guid","entry_name","pole_model"],"title":"LineDesignPole"},"LineDesignShapeRenderInfo":{"properties":{},"additionalProperties":true,"type":"object","title":"LineDesignShapeRenderInfo"},"LineDesignSurfaceObstruction":{"properties":{"obstruction_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Obstruction Type"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"elevation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation"},"width":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Width"},"length":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Length"},"height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Height"},"rotation":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rotation"},"additional_points":{"items":{"prefixItems":[{"type":"number"},{"type":"number"},{"type":"number"}],"type":"array","maxItems":3,"minItems":3},"type":"array","title":"Additional Points"}},"additionalProperties":true,"type":"object","title":"LineDesignSurfaceObstruction"},"LinePole":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"is_deadend":{"type":"boolean","title":"Is Deadend","default":false}},"type":"object","required":["pole_id"],"title":"LinePole"},"LineSolveResult":{"properties":{"sections":{"items":{"$ref":"#/components/schemas/DeadendSection"},"type":"array","title":"Sections"},"section_tensions":{"items":{"$ref":"#/components/schemas/SectionTensionResult"},"type":"array","title":"Section Tensions"},"pole_tensions":{"items":{"$ref":"#/components/schemas/PoleTensionEntry"},"type":"array","title":"Pole Tensions"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["sections","section_tensions","pole_tensions","provenance"],"title":"LineSolveResult"},"LineSpan":{"properties":{"span_id":{"type":"string","title":"Span Id"},"from_pole_id":{"type":"string","title":"From Pole Id"},"to_pole_id":{"type":"string","title":"To Pole Id"},"length_ft":{"type":"number","title":"Length Ft"},"conductor":{"$ref":"#/components/schemas/ConductorMechanicalProps"},"initial_state":{"$ref":"#/components/schemas/SagTensionState"},"conductor_tag":{"type":"string","title":"Conductor Tag","default":"default"}},"type":"object","required":["span_id","from_pole_id","to_pole_id","length_ft","conductor","initial_state"],"title":"LineSpan"},"LineTensionSolveRequest":{"properties":{"line":{"$ref":"#/components/schemas/Line"},"final_loading":{"$ref":"#/components/schemas/IceWindLoading"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["line","final_loading","source_ref"],"title":"LineTensionSolveRequest"},"LinkKeyRequest":{"properties":{"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["api_key"],"title":"LinkKeyRequest"},"LiquidCoolingHeatDissipationResult":{"properties":{"flow_lpm":{"type":"number","title":"Flow Lpm"},"supply_temp_c":{"type":"number","title":"Supply Temp C"},"return_temp_c":{"type":"number","title":"Return Temp C"},"delta_t_c":{"type":"number","title":"Delta T C"},"mass_flow_kg_s":{"type":"number","title":"Mass Flow Kg S"},"heat_dissipated_kw":{"type":"number","title":"Heat Dissipated Kw"},"rated_heat_load_kw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rated Heat Load Kw"},"margin_kw":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Margin Kw"},"margin_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Margin Percent"},"meets_rated_load":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Meets Rated Load"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["flow_lpm","supply_temp_c","return_temp_c","delta_t_c","mass_flow_kg_s","heat_dissipated_kw","rated_heat_load_kw","margin_kw","margin_percent","meets_rated_load","provenance"],"title":"LiquidCoolingHeatDissipationResult"},"LocationExposure":{"type":"string","enum":["wet","damp","indoor_dry"],"title":"LocationExposure"},"ManeuveringApproachType":{"type":"string","enum":["forward","parallel"],"title":"ManeuveringApproachType","description":"R404.7's own terms (\"Forward Approach\" / \"Parallel Approach\") — distinct from\ncheck_operable_parts.ApproachType's FORWARD/SIDE (R406 reach-range terminology). See module\ndoc comment for why these are not reused as one shared enum."},"MaxCablesForConduitRequest":{"properties":{"conduit_trade_size_in":{"type":"number","title":"Conduit Trade Size In"},"conduit_material":{"type":"string","title":"Conduit Material","default":"PVC_40"},"cable_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cable Type"},"cable_od_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cable Od In"}},"type":"object","required":["conduit_trade_size_in"],"title":"MaxCablesForConduitRequest"},"MaxSheathBondedLengthResult":{"properties":{"max_bonded_length_m":{"type":"number","title":"Max Bonded Length M"},"induced_voltage_gradient_v_per_m":{"type":"number","title":"Induced Voltage Gradient V Per M"},"sheath_voltage_limit_v":{"type":"number","title":"Sheath Voltage Limit V"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["max_bonded_length_m","induced_voltage_gradient_v_per_m","sheath_voltage_limit_v","provenance"],"title":"MaxSheathBondedLengthResult"},"MeasuredValue":{"properties":{"value_si":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value Si"},"unit_si":{"type":"string","title":"Unit Si","default":"m"},"source_value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Source Value"},"source_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Unit"}},"additionalProperties":true,"type":"object","title":"MeasuredValue"},"MeshStepVoltageResult":{"properties":{"mesh_voltage_volts":{"type":"number","title":"Mesh Voltage Volts"},"step_voltage_volts":{"type":"number","title":"Step Voltage Volts"},"soil_resistivity_ohm_m":{"type":"number","title":"Soil Resistivity Ohm M"},"grid_current_amps":{"type":"number","title":"Grid Current Amps"},"factors":{"$ref":"#/components/schemas/GroundingGridGeometricFactors"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["mesh_voltage_volts","step_voltage_volts","soil_resistivity_ohm_m","grid_current_amps","factors","provenance"],"title":"MeshStepVoltageResult"},"MidspanCrossarmInput":{"properties":{"crossarm_id":{"type":"string","title":"Crossarm Id"},"attachment_height_ft":{"type":"number","title":"Attachment Height Ft"},"voltage_v":{"type":"number","title":"Voltage V","default":0.0},"attachment_type":{"type":"string","enum":["communication","supply_cable","neutral","open_supply","span_wire","guy_wire","messenger"],"title":"Attachment Type","default":"supply_cable"},"related_attachment_ids":{"items":{"type":"string"},"type":"array","title":"Related Attachment Ids"},"spans":{"items":{"$ref":"#/components/schemas/MidspanSpanInput"},"type":"array","title":"Spans"}},"type":"object","required":["crossarm_id","attachment_height_ft"],"title":"MidspanCrossarmInput"},"MidspanElevationsResult":{"properties":{"code":{"type":"string","enum":["NESC","GO95"],"title":"Code"},"reference_temperature_f":{"type":"number","title":"Reference Temperature F"},"sag_check_points":{"items":{"$ref":"#/components/schemas/SagCheckPoint"},"type":"array","title":"Sag Check Points"},"crossarm_results":{"items":{"$ref":"#/components/schemas/CrossarmMidspanResult"},"type":"array","title":"Crossarm Results"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["code","reference_temperature_f","sag_check_points","crossarm_results","provenance"],"title":"MidspanElevationsResult"},"MidspanSpanInput":{"properties":{"insulator_id":{"type":"string","title":"Insulator Id"},"span_length_ft":{"type":"number","title":"Span Length Ft"},"conductor":{"$ref":"#/components/schemas/ConductorMechanicalProps"},"design_tension_pct_rbs":{"type":"number","title":"Design Tension Pct Rbs","default":0.25}},"type":"object","required":["insulator_id","span_length_ft","conductor"],"title":"MidspanSpanInput"},"MidspanSpanResult":{"properties":{"insulator_id":{"type":"string","title":"Insulator Id"},"span_length_ft":{"type":"number","title":"Span Length Ft"},"states":{"additionalProperties":{"$ref":"#/components/schemas/MidspanStateResult"},"type":"object","title":"States"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["insulator_id","span_length_ft"],"title":"MidspanSpanResult"},"MidspanStateResult":{"properties":{"label":{"type":"string","title":"Label"},"temp_f":{"type":"number","title":"Temp F"},"ice_in":{"type":"number","title":"Ice In"},"wind_psf":{"type":"number","title":"Wind Psf"},"tension_lb":{"type":"number","title":"Tension Lb"},"sag_ft":{"type":"number","title":"Sag Ft"},"midspan_elevation_ft":{"type":"number","title":"Midspan Elevation Ft"},"source_rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Rule"}},"type":"object","required":["label","temp_f","ice_in","wind_psf","tension_lb","sag_ft","midspan_elevation_ft"],"title":"MidspanStateResult"},"MotorStartFlickerResult":{"properties":{"delta_v_over_v_percent":{"type":"number","title":"Delta V Over V Percent"},"visibility_threshold_percent":{"type":"number","title":"Visibility Threshold Percent"},"starts_per_hour":{"type":"number","title":"Starts Per Hour"},"compliance":{"$ref":"#/components/schemas/FlickerCompliance"},"margin_percent":{"type":"number","title":"Margin Percent"},"notes":{"type":"string","title":"Notes"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["delta_v_over_v_percent","visibility_threshold_percent","starts_per_hour","compliance","margin_percent","notes","provenance"],"title":"MotorStartFlickerResult"},"MotorStartInput":{"properties":{"locked_rotor_kva":{"type":"number","title":"Locked Rotor Kva"},"short_circuit_mva":{"type":"number","title":"Short Circuit Mva"},"starts_per_hour":{"type":"number","title":"Starts Per Hour","default":1.0},"system_impedance_angle_deg":{"type":"number","title":"System Impedance Angle Deg","default":75.0},"motor_pf_starting":{"type":"number","title":"Motor Pf Starting","default":0.4}},"type":"object","required":["locked_rotor_kva","short_circuit_mva"],"title":"MotorStartInput","description":"One motor-start flicker scenario."},"MountingType":{"type":"string","enum":["general","single_post","between_posts"],"title":"MountingType"},"MultiRodResistanceRequest":{"properties":{"soil":{"$ref":"#/components/schemas/SoilProfileInput"},"config":{"$ref":"#/components/schemas/GroundingConfigInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["soil","config","source_ref"],"title":"MultiRodResistanceRequest"},"Nesc261hLimitsResult":{"properties":{"initial_loaded_pct_rbs":{"type":"number","title":"Initial Loaded Pct Rbs"},"initial_unloaded_pct_rbs_at_60f":{"type":"number","title":"Initial Unloaded Pct Rbs At 60F"},"final_unloaded_pct_rbs_at_60f":{"type":"number","title":"Final Unloaded Pct Rbs At 60F"},"guy_strand_pct_rbs_at_loading":{"type":"number","title":"Guy Strand Pct Rbs At Loading"},"reference_temperature_unloaded_f":{"type":"number","title":"Reference Temperature Unloaded F"},"go95_equivalent_max_loaded_pct_ultimate":{"type":"number","title":"Go95 Equivalent Max Loaded Pct Ultimate"},"rbs_lbs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rbs Lbs"},"initial_loaded_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Loaded Lb"},"initial_unloaded_at_60f_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initial Unloaded At 60F Lb"},"final_unloaded_at_60f_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Final Unloaded At 60F Lb"},"guy_strand_at_loading_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Guy Strand At Loading Lb"},"final_unloaded_tension_lbs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Final Unloaded Tension Lbs"},"final_unloaded_tension_pct_rbs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Final Unloaded Tension Pct Rbs"},"aeolian_damper_required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Aeolian Damper Required"},"aeolian_damper_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aeolian Damper Rationale"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["initial_loaded_pct_rbs","initial_unloaded_pct_rbs_at_60f","final_unloaded_pct_rbs_at_60f","guy_strand_pct_rbs_at_loading","reference_temperature_unloaded_f","go95_equivalent_max_loaded_pct_ultimate","rule_refs","provenance"],"title":"Nesc261hLimitsResult"},"Nesc261hTensionLimitsRequest":{"properties":{"source_ref":{"type":"string","title":"Source Ref"},"rbs_lbs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rbs Lbs"},"final_unloaded_tension_lbs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Final Unloaded Tension Lbs"}},"type":"object","required":["source_ref"],"title":"Nesc261hTensionLimitsRequest"},"NescAttachmentInput":{"properties":{"attachment_id":{"type":"string","title":"Attachment Id"},"attachment_type":{"type":"string","enum":["communication","supply_cable","neutral","open_supply","span_wire","guy_wire","messenger"],"title":"Attachment Type"},"attachment_height_m":{"type":"number","title":"Attachment Height M"},"attachment_voltage_v":{"type":"number","title":"Attachment Voltage V","default":0.0},"insulated":{"type":"boolean","title":"Insulated","default":false},"grounded":{"type":"boolean","title":"Grounded","default":false},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"circuit_type":{"type":"string","enum":["supply","communication"],"title":"Circuit Type","default":"supply"},"location":{"type":"string","enum":["communication_space","supply_space"],"title":"Location","default":"supply_space"},"related_attachment_ids":{"items":{"type":"string"},"type":"array","title":"Related Attachment Ids","default":[]}},"type":"object","required":["attachment_id","attachment_type","attachment_height_m"],"title":"NescAttachmentInput"},"NescCrossarmAttachmentInput":{"properties":{"attachment_id":{"type":"string","title":"Attachment Id"},"horizontal_position_m":{"type":"number","title":"Horizontal Position M"},"attachment_voltage_v":{"type":"number","title":"Attachment Voltage V","default":0.0},"circuit_type":{"type":"string","enum":["supply","communication"],"title":"Circuit Type","default":"supply"}},"type":"object","required":["attachment_id","horizontal_position_m"],"title":"NescCrossarmAttachmentInput"},"NescCrossarmClearanceRequest":{"properties":{"crossarm":{"$ref":"#/components/schemas/NescCrossarmInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["crossarm","source_ref"],"title":"NescCrossarmClearanceRequest"},"NescCrossarmClearanceResult":{"properties":{"within_width_errors":{"items":{"type":"string"},"type":"array","title":"Within Width Errors"},"clearance_issues":{"items":{"$ref":"#/components/schemas/ClearanceIssue"},"type":"array","title":"Clearance Issues"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["within_width_errors","clearance_issues","provenance"],"title":"NescCrossarmClearanceResult"},"NescCrossarmInput":{"properties":{"crossarm_width_m":{"type":"number","title":"Crossarm Width M"},"attachments":{"items":{"$ref":"#/components/schemas/NescCrossarmAttachmentInput"},"type":"array","title":"Attachments"}},"type":"object","required":["crossarm_width_m","attachments"],"title":"NescCrossarmInput"},"NescDistrictRequest":{"properties":{"source_ref":{"type":"string","title":"Source Ref"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"elevation_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation Ft"},"explicit_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explicit District"}},"type":"object","required":["source_ref"],"title":"NescDistrictRequest"},"NescDistrictResult":{"properties":{"district":{"type":"string","enum":["HEAVY","MEDIUM","LIGHT","WARM_ISLAND_UNDER_9000_FT","WARM_ISLAND_OVER_9000_FT"],"title":"District"},"values":{"$ref":"#/components/schemas/DistrictOrZoneValues"},"lookup_method":{"type":"string","enum":["explicit","state_fallback"],"title":"Lookup Method"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["district","values","lookup_method","rule_refs","provenance"],"title":"NescDistrictResult"},"NescGradeInput":{"properties":{"max_supply_voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Supply Voltage V"},"has_communication":{"type":"boolean","title":"Has Communication","default":false},"crosses_railroad":{"type":"boolean","title":"Crosses Railroad","default":false},"crosses_limited_access_highway":{"type":"boolean","title":"Crosses Limited Access Highway","default":false},"crosses_navigable_waterway":{"type":"boolean","title":"Crosses Navigable Waterway","default":false},"auto_deenergized_at_crossing":{"type":"boolean","title":"Auto Deenergized At Crossing","default":false},"on_private_row":{"type":"boolean","title":"On Private Row","default":false},"is_dielectric_fiber":{"type":"boolean","title":"Is Dielectric Fiber","default":false},"is_emergency_or_temporary":{"type":"boolean","title":"Is Emergency Or Temporary","default":false}},"type":"object","title":"NescGradeInput"},"NescGradeRequest":{"properties":{"inp":{"$ref":"#/components/schemas/NescGradeInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["inp","source_ref"],"title":"NescGradeRequest"},"NescPoleClearanceResult":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"ground_level_height_m":{"type":"number","title":"Ground Level Height M"},"clearance_status":{"type":"string","enum":["compliant","non_compliant"],"title":"Clearance Status"},"clearance_issues":{"items":{"$ref":"#/components/schemas/ClearanceIssue"},"type":"array","title":"Clearance Issues"},"table_232_1_issue_count":{"type":"integer","title":"Table 232 1 Issue Count"},"table_235_5_issue_count":{"type":"integer","title":"Table 235 5 Issue Count"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["pole_id","ground_level_height_m","clearance_status","clearance_issues","table_232_1_issue_count","table_235_5_issue_count","provenance"],"title":"NescPoleClearanceResult"},"NescPoleClearancesRequest":{"properties":{"pole":{"$ref":"#/components/schemas/NescPoleInput"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["pole","source_ref"],"title":"NescPoleClearancesRequest"},"NescPoleInput":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"pole_height_m":{"type":"number","title":"Pole Height M"},"pole_set_depth_m":{"type":"number","title":"Pole Set Depth M"},"surface_type":{"type":"integer","title":"Surface Type","default":2},"surface_sub_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Surface Sub Key"},"altitude_m":{"type":"number","title":"Altitude M","default":0.0},"attachments":{"items":{"$ref":"#/components/schemas/NescAttachmentInput"},"type":"array","title":"Attachments"}},"type":"object","required":["pole_id","pole_height_m","pole_set_depth_m","attachments"],"title":"NescPoleInput"},"NescTable232_1ClearanceRequest":{"properties":{"voltage_v":{"type":"number","title":"Voltage V"},"surface_type":{"type":"integer","title":"Surface Type"},"source_ref":{"type":"string","title":"Source Ref"},"insulated":{"type":"boolean","title":"Insulated","default":false},"grounded":{"type":"boolean","title":"Grounded","default":false},"is_trolley":{"type":"boolean","title":"Is Trolley","default":false},"meets_rule_230c1":{"type":"boolean","title":"Meets Rule 230C1","default":false},"sub_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Key"}},"type":"object","required":["voltage_v","surface_type","source_ref"],"title":"NescTable232_1ClearanceRequest"},"NescTable235_5ClearanceRequest":{"properties":{"upper_type":{"type":"string","title":"Upper Type"},"upper_voltage_v":{"type":"number","title":"Upper Voltage V"},"lower_type":{"type":"string","title":"Lower Type"},"lower_voltage_v":{"type":"number","title":"Lower Voltage V"},"source_ref":{"type":"string","title":"Source Ref"},"lower_location":{"type":"string","title":"Lower Location","default":"communication_space"},"same_utility":{"type":"boolean","title":"Same Utility","default":true}},"type":"object","required":["upper_type","upper_voltage_v","lower_type","lower_voltage_v","source_ref"],"title":"NescTable235_5ClearanceRequest"},"NescTable235_6ClearanceRequest":{"properties":{"voltage_v":{"type":"number","title":"Voltage V"},"circuit_type":{"type":"string","title":"Circuit Type"},"element_type":{"type":"string","title":"Element Type"},"source_ref":{"type":"string","title":"Source Ref"},"relationship":{"type":"string","title":"Relationship","default":"other"},"orientation":{"type":"string","title":"Orientation","default":"other"},"subtype":{"type":"string","title":"Subtype","default":"other"},"jointly_used":{"type":"boolean","title":"Jointly Used","default":false},"altitude_m":{"type":"number","title":"Altitude M","default":0.0}},"type":"object","required":["voltage_v","circuit_type","element_type","source_ref"],"title":"NescTable235_6ClearanceRequest"},"NescTableLookupResult":{"properties":{"required":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Required"},"unit":{"type":"string","title":"Unit"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["required","unit","rule_refs","provenance"],"title":"NescTableLookupResult"},"OcalcPoleModel-Input":{"properties":{"model_version":{"type":"string","title":"Model Version","default":"1.0.0"},"identity":{"$ref":"#/components/schemas/PoleIdentity"},"geometry":{"$ref":"#/components/schemas/PoleGeometry"},"crossarms":{"items":{"$ref":"#/components/schemas/Crossarm-Input"},"type":"array","title":"Crossarms"},"pole_mounted_insulators":{"items":{"$ref":"#/components/schemas/overhead_pole_model__models__Insulator"},"type":"array","title":"Pole Mounted Insulators"},"guys":{"items":{"$ref":"#/components/schemas/Guy"},"type":"array","title":"Guys"},"span_guys":{"items":{"$ref":"#/components/schemas/SpanGuy"},"type":"array","title":"Span Guys"},"anchors":{"items":{"$ref":"#/components/schemas/Anchor"},"type":"array","title":"Anchors"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Attachments"},"equipment":{"items":{"$ref":"#/components/schemas/Equipment"},"type":"array","title":"Equipment"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["identity"],"title":"OcalcPoleModel","description":"Thin subclass, no new fields today -- see this module's own docstring."},"OcalcPoleModel-Output":{"properties":{"model_version":{"type":"string","title":"Model Version","default":"1.0.0"},"identity":{"$ref":"#/components/schemas/PoleIdentity"},"geometry":{"$ref":"#/components/schemas/PoleGeometry"},"crossarms":{"items":{"$ref":"#/components/schemas/Crossarm-Output"},"type":"array","title":"Crossarms"},"pole_mounted_insulators":{"items":{"$ref":"#/components/schemas/Insulator-Output"},"type":"array","title":"Pole Mounted Insulators"},"guys":{"items":{"$ref":"#/components/schemas/Guy"},"type":"array","title":"Guys"},"span_guys":{"items":{"$ref":"#/components/schemas/SpanGuy"},"type":"array","title":"Span Guys"},"anchors":{"items":{"$ref":"#/components/schemas/Anchor"},"type":"array","title":"Anchors"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Attachments"},"equipment":{"items":{"$ref":"#/components/schemas/Equipment"},"type":"array","title":"Equipment"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["identity"],"title":"OcalcPoleModel","description":"Thin subclass, no new fields today -- see this module's own docstring."},"OvercurrentCurve":{"type":"string","enum":["ieee_moderately_inverse","ieee_very_inverse","ieee_extremely_inverse","iec_standard_inverse","iec_very_inverse","iec_extremely_inverse","definite_time"],"title":"OvercurrentCurve"},"OvercurrentTripTimeResult":{"properties":{"curve":{"$ref":"#/components/schemas/OvercurrentCurve"},"multiple_of_pickup":{"type":"number","title":"Multiple Of Pickup"},"time_dial_setting":{"type":"number","title":"Time Dial Setting"},"trip_time_seconds":{"type":"number","title":"Trip Time Seconds"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["curve","multiple_of_pickup","time_dial_setting","trip_time_seconds","provenance"],"title":"OvercurrentTripTimeResult"},"ParallelPipeRemediationResult":{"properties":{"total_flow_lpm":{"type":"number","title":"Total Flow Lpm"},"diameter_mm":{"type":"number","title":"Diameter Mm"},"candidates":{"items":{"$ref":"#/components/schemas/ParallelRunCandidateEvaluation"},"type":"array","title":"Candidates"},"smallest_passing_run_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Smallest Passing Run Count"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["total_flow_lpm","diameter_mm","candidates","smallest_passing_run_count","provenance"],"title":"ParallelPipeRemediationResult"},"ParallelRunCandidateEvaluation":{"properties":{"run_count":{"type":"integer","title":"Run Count"},"flow_per_run_lpm":{"type":"number","title":"Flow Per Run Lpm"},"velocity_result":{"$ref":"#/components/schemas/PipeVelocityResult"},"state":{"type":"string","enum":["passes_cited_limit","fails_cited_limit","gap_no_cited_limit"],"title":"State"}},"type":"object","required":["run_count","flow_per_run_lpm","velocity_result","state"],"title":"ParallelRunCandidateEvaluation"},"ParkingType":{"type":"string","enum":["parallel","perpendicular","angled"],"title":"ParkingType"},"ParsePlsRequest":{"properties":{"pol_content":{"type":"string","title":"Pol Content"},"loa_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Loa Content"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"type":"object","required":["pol_content"],"title":"ParsePlsRequest"},"ParsePlsResult":{"properties":{"pole":{"$ref":"#/components/schemas/PlsPoleModel"},"provenance":{"$ref":"#/components/schemas/pls_harness__functions__provenance__Provenance"}},"type":"object","required":["pole","provenance"],"title":"ParsePlsResult"},"ParsePplldRequest":{"properties":{"archive_b64":{"type":"string","title":"Archive B64"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"type":"object","required":["archive_b64"],"title":"ParsePplldRequest"},"ParsePplldResult":{"properties":{"poles":{"items":{"$ref":"#/components/schemas/LineDesignPole-Output"},"type":"array","title":"Poles"},"metadata":{"$ref":"#/components/schemas/LineDesignMetadata"},"links":{"items":{"$ref":"#/components/schemas/LineDesignLink"},"type":"array","title":"Links"},"count":{"type":"integer","title":"Count"},"provenance":{"$ref":"#/components/schemas/ocalc_harness__functions__provenance__Provenance"}},"type":"object","required":["poles","metadata","links","count","provenance"],"title":"ParsePplldResult"},"ParsePplxRequest":{"properties":{"xml":{"type":"string","title":"Xml"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"type":"object","required":["xml"],"title":"ParsePplxRequest"},"ParsePplxResult":{"properties":{"pole":{"$ref":"#/components/schemas/OcalcPoleModel-Output"},"stored":{"anyOf":[{"$ref":"#/components/schemas/StoredCapacityData"},{"type":"null"}]},"provenance":{"$ref":"#/components/schemas/ocalc_harness__functions__provenance__Provenance"}},"type":"object","required":["pole","provenance"],"title":"ParsePplxResult"},"ParseSpidaRequest":{"properties":{"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"type":"object","required":["payload"],"title":"ParseSpidaRequest"},"ParseSpidaResult":{"properties":{"poles":{"items":{"$ref":"#/components/schemas/SpidaPoleModel-Output"},"type":"array","title":"Poles"},"count":{"type":"integer","title":"Count"},"provenance":{"$ref":"#/components/schemas/spida_harness__functions__provenance__Provenance"}},"type":"object","required":["poles","count","provenance"],"title":"ParseSpidaResult"},"ParseTalonStructureRequest":{"properties":{"structure":{"additionalProperties":true,"type":"object","title":"Structure"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"type":"object","required":["structure"],"title":"ParseTalonStructureRequest"},"ParseTalonStructureResult":{"properties":{"pole":{"$ref":"#/components/schemas/ClassificationPoleModel-Output"},"data_quality_flags":{"items":{"$ref":"#/components/schemas/TalonDataQualityFlag"},"type":"array","title":"Data Quality Flags"},"provenance":{"$ref":"#/components/schemas/field_capture_harness__functions__provenance__Provenance"}},"type":"object","required":["pole","provenance"],"title":"ParseTalonStructureResult"},"PathImpedanceResult":{"properties":{"total_resistance_ohm":{"type":"number","title":"Total Resistance Ohm"},"total_reactance_ohm":{"type":"number","title":"Total Reactance Ohm"},"total_impedance_magnitude_ohm":{"type":"number","title":"Total Impedance Magnitude Ohm"},"total_length_ft":{"type":"number","title":"Total Length Ft"},"segment_count":{"type":"integer","title":"Segment Count"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["total_resistance_ohm","total_reactance_ohm","total_impedance_magnitude_ohm","total_length_ft","segment_count","provenance"],"title":"PathImpedanceResult"},"PerimeterFence":{"properties":{"has_openings":{"type":"boolean","title":"Has Openings","default":true},"clearance_to_live_parts_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Clearance To Live Parts Ft"},"height_ft":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Height Ft"},"is_metallic":{"type":"boolean","title":"Is Metallic","default":true},"has_barbed_wire":{"type":"boolean","title":"Has Barbed Wire","default":false},"perimeter_length_ft":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Perimeter Length Ft"}},"type":"object","title":"PerimeterFence","description":"A substation's security/safety perimeter fence, scoped to the fields\n`check_substation_fence_clearance` and `check_substation_fence_height` need — see\n`standards/electric_supply_stations/nesc_rule_110_fence_clearance.md` and\n`nesc_rule_110_fence_height.md` for the NESC Rule 110 rules these model against."},"PhaseBalanceResult":{"properties":{"phase_loads_kva":{"additionalProperties":{"type":"number"},"type":"object","title":"Phase Loads Kva"},"average_kva":{"type":"number","title":"Average Kva"},"max_deviation_kva":{"type":"number","title":"Max Deviation Kva"},"nema_unbalance_percent":{"type":"number","title":"Nema Unbalance Percent"},"classification":{"type":"string","enum":["good","tight","objectionable","no_load"],"title":"Classification"},"network_kind":{"type":"string","enum":["three_phase","split_phase","mixed","unknown"],"title":"Network Kind"},"services_with_unknown_phase":{"type":"integer","title":"Services With Unknown Phase"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["phase_loads_kva","average_kva","max_deviation_kva","nema_unbalance_percent","classification","network_kind","services_with_unknown_phase","provenance"],"title":"PhaseBalanceResult"},"PipeDiameterRemediationResult":{"properties":{"flow_lpm":{"type":"number","title":"Flow Lpm"},"candidates":{"items":{"$ref":"#/components/schemas/DiameterCandidateEvaluation"},"type":"array","title":"Candidates"},"smallest_passing_diameter_mm":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Smallest Passing Diameter Mm"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["flow_lpm","candidates","smallest_passing_diameter_mm","provenance"],"title":"PipeDiameterRemediationResult"},"PipeVelocityResult":{"properties":{"flow_lpm":{"type":"number","title":"Flow Lpm"},"diameter_mm":{"type":"number","title":"Diameter Mm"},"velocity_m_s":{"type":"number","title":"Velocity M S"},"regime":{"type":"string","enum":["small_pipe_velocity_limited","gap_no_cited_limit","large_pipe_erosion_limited"],"title":"Regime"},"regime_max_velocity_m_s":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Regime Max Velocity M S"},"meets_regime_limit":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Meets Regime Limit"},"absolute_max_velocity_m_s":{"type":"number","title":"Absolute Max Velocity M S"},"meets_absolute_max_velocity":{"type":"boolean","title":"Meets Absolute Max Velocity"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["flow_lpm","diameter_mm","velocity_m_s","regime","regime_max_velocity_m_s","meets_regime_limit","absolute_max_velocity_m_s","meets_absolute_max_velocity","provenance"],"title":"PipeVelocityResult"},"PlanGpuCapacityRequest":{"properties":{"equipment_name":{"type":"string","title":"Equipment Name"},"additional_gpus":{"type":"integer","title":"Additional Gpus"}},"type":"object","required":["equipment_name","additional_gpus"],"title":"PlanGpuCapacityRequest"},"PlsPoleModel":{"properties":{"model_version":{"type":"string","title":"Model Version","default":"1.0.0"},"identity":{"$ref":"#/components/schemas/PoleIdentity"},"geometry":{"$ref":"#/components/schemas/PoleGeometry"},"crossarms":{"items":{"$ref":"#/components/schemas/Crossarm-Output"},"type":"array","title":"Crossarms"},"pole_mounted_insulators":{"items":{"$ref":"#/components/schemas/Insulator-Output"},"type":"array","title":"Pole Mounted Insulators"},"guys":{"items":{"$ref":"#/components/schemas/Guy"},"type":"array","title":"Guys"},"span_guys":{"items":{"$ref":"#/components/schemas/SpanGuy"},"type":"array","title":"Span Guys"},"anchors":{"items":{"$ref":"#/components/schemas/Anchor"},"type":"array","title":"Anchors"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Attachments"},"equipment":{"items":{"$ref":"#/components/schemas/Equipment"},"type":"array","title":"Equipment"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["identity"],"title":"PlsPoleModel","description":"Thin subclass, no new fields today -- see this module's own docstring for the disclosed\n`span_guys` trade-off."},"PoleCapacityGroundLineMethodInput":{"properties":{"pole_moment_capacity_ft_lbs":{"type":"number","title":"Pole Moment Capacity Ft Lbs"},"strength_factor":{"type":"number","title":"Strength Factor"},"wind_load_factor":{"type":"number","title":"Wind Load Factor"},"vertical_load_factor":{"type":"number","title":"Vertical Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_groundline_in":{"type":"number","title":"Diameter Groundline In"},"height_above_groundline_ft":{"type":"number","title":"Height Above Groundline Ft"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"},"resultant_load_moment_arm_ft":{"type":"number","title":"Resultant Load Moment Arm Ft"},"conductor_weight_per_ft_lbs":{"type":"number","title":"Conductor Weight Per Ft Lbs"},"net_conductor_offset_ft":{"type":"number","title":"Net Conductor Offset Ft"},"ground_wire_weight_per_ft_lbs":{"type":"number","title":"Ground Wire Weight Per Ft Lbs"},"ground_wire_offset_ft":{"type":"number","title":"Ground Wire Offset Ft"},"insulator_weight_lbs":{"type":"number","title":"Insulator Weight Lbs"},"total_vertical_unit_load_lbs_per_ft":{"type":"number","title":"Total Vertical Unit Load Lbs Per Ft"},"modulus_of_elasticity_psi":{"type":"number","title":"Modulus Of Elasticity Psi"},"diameter_at_moment_arm_in":{"type":"number","title":"Diameter At Moment Arm In"},"deflection_magnifier_assumed":{"type":"number","title":"Deflection Magnifier Assumed","default":1.15}},"type":"object","required":["pole_moment_capacity_ft_lbs","strength_factor","wind_load_factor","vertical_load_factor","wind_pressure_psf","diameter_top_in","diameter_groundline_in","height_above_groundline_ft","total_transverse_unit_load_lbs_per_ft","resultant_load_moment_arm_ft","conductor_weight_per_ft_lbs","net_conductor_offset_ft","ground_wire_weight_per_ft_lbs","ground_wire_offset_ft","insulator_weight_lbs","total_vertical_unit_load_lbs_per_ft","modulus_of_elasticity_psi","diameter_at_moment_arm_in"],"title":"PoleCapacityGroundLineMethodInput"},"PoleCapacityPointOfMaximumStressMethodInput":{"properties":{"pole_moment_capacity_ft_lbs":{"type":"number","title":"Pole Moment Capacity Ft Lbs"},"strength_factor":{"type":"number","title":"Strength Factor"},"wind_load_factor":{"type":"number","title":"Wind Load Factor"},"vertical_load_factor":{"type":"number","title":"Vertical Load Factor"},"wind_pressure_psf":{"type":"number","title":"Wind Pressure Psf"},"diameter_top_in":{"type":"number","title":"Diameter Top In"},"diameter_at_point_of_maximum_stress_in":{"type":"number","title":"Diameter At Point Of Maximum Stress In"},"distance_from_top_to_point_of_maximum_stress_ft":{"type":"number","title":"Distance From Top To Point Of Maximum Stress Ft"},"total_transverse_unit_load_lbs_per_ft":{"type":"number","title":"Total Transverse Unit Load Lbs Per Ft"},"resultant_load_moment_arm_above_pms_ft":{"type":"number","title":"Resultant Load Moment Arm Above Pms Ft"},"conductor_weight_per_ft_lbs":{"type":"number","title":"Conductor Weight Per Ft Lbs"},"net_conductor_offset_ft":{"type":"number","title":"Net Conductor Offset Ft"},"ground_wire_weight_per_ft_lbs":{"type":"number","title":"Ground Wire Weight Per Ft Lbs"},"ground_wire_offset_ft":{"type":"number","title":"Ground Wire Offset Ft"},"insulator_weight_lbs":{"type":"number","title":"Insulator Weight Lbs"},"total_vertical_unit_load_lbs_per_ft":{"type":"number","title":"Total Vertical Unit Load Lbs Per Ft"},"modulus_of_elasticity_psi":{"type":"number","title":"Modulus Of Elasticity Psi"},"diameter_at_resultant_load_in":{"type":"number","title":"Diameter At Resultant Load In"},"deflection_magnifier_assumed":{"type":"number","title":"Deflection Magnifier Assumed","default":1.15}},"type":"object","required":["pole_moment_capacity_ft_lbs","strength_factor","wind_load_factor","vertical_load_factor","wind_pressure_psf","diameter_top_in","diameter_at_point_of_maximum_stress_in","distance_from_top_to_point_of_maximum_stress_ft","total_transverse_unit_load_lbs_per_ft","resultant_load_moment_arm_above_pms_ft","conductor_weight_per_ft_lbs","net_conductor_offset_ft","ground_wire_weight_per_ft_lbs","ground_wire_offset_ft","insulator_weight_lbs","total_vertical_unit_load_lbs_per_ft","modulus_of_elasticity_psi","diameter_at_resultant_load_in"],"title":"PoleCapacityPointOfMaximumStressMethodInput"},"PoleGeometry":{"properties":{"manufactured_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"set_depth":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"ground_line_circumference":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"pole_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pole Class"},"pole_species":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pole Species"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"elevation_m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation M"}},"additionalProperties":true,"type":"object","title":"PoleGeometry"},"PoleIdentity":{"properties":{"pole_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pole Id"},"structure_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Structure Id"},"structure_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Structure Name"},"source_ref":{"$ref":"#/components/schemas/SourceRef-Output"}},"additionalProperties":true,"type":"object","required":["source_ref"],"title":"PoleIdentity"},"PoleTensionEntry":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"span_id":{"type":"string","title":"Span Id"},"conductor_tag":{"type":"string","title":"Conductor Tag"},"horizontal_tension_lb":{"type":"number","title":"Horizontal Tension Lb"},"sag_at_this_span_ft":{"type":"number","title":"Sag At This Span Ft"},"span_length_ft":{"type":"number","title":"Span Length Ft"}},"type":"object","required":["pole_id","span_id","conductor_tag","horizontal_tension_lb","sag_at_this_span_ft","span_length_ft"],"title":"PoleTensionEntry"},"PotentialTransformer":{"properties":{"id":{"type":"string","title":"Id"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"}},"type":"object","required":["id"],"title":"PotentialTransformer","description":"A single potential (voltage) transformer (PT) at a substation.\n\n`bil_kv` added 2026-07-28 (Part LXXXIV), same reasoning as `CurrentTransformer.bil_kv` — keyed\nagainst a real cited Ritz Instrument Transformers Type IVO product-brochure GA-dimension table,\ngenuinely dimensioned for only 3 of its own 5 BIL classes (350/550/650 — 750/1050 are blank in\nthe real source itself, \"consult factory\"; see that schema's own docstring). No site-level BIL\nfallback, same reasoning as `CurrentTransformer`."},"PqCurveResult":{"properties":{"flow":{"type":"number","title":"Flow"},"flow_unit":{"type":"string","title":"Flow Unit"},"pressure_drop":{"type":"number","title":"Pressure Drop"},"pressure_drop_unit":{"type":"string","title":"Pressure Drop Unit"},"a":{"type":"number","title":"A"},"b":{"type":"number","title":"B"},"valid_range":{"anyOf":[{"prefixItems":[{"type":"number"},{"type":"number"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Valid Range"},"within_valid_range":{"type":"boolean","title":"Within Valid Range"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["flow","flow_unit","pressure_drop","pressure_drop_unit","a","b","valid_range","within_valid_range","provenance"],"title":"PqCurveResult"},"PropertyValue":{"properties":{"value":{"anyOf":[{"type":"number"},{"type":"integer"},{"type":"string"},{"items":{},"type":"array"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc"}},"type":"object","required":["value"],"title":"PropertyValue","description":"One authored ``aif:core:*``/``aif:spec:*`` attribute, value + unit + doc string as\nauthored in the source USD layer (unit is NOT normalized -- see module docstring)."},"ProposeParallelPipeRemediationRequest":{"properties":{"total_flow_lpm":{"type":"number","title":"Total Flow Lpm"},"diameter_mm":{"type":"number","title":"Diameter Mm"},"candidate_run_counts":{"items":{"type":"integer"},"type":"array","title":"Candidate Run Counts"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["total_flow_lpm","diameter_mm","candidate_run_counts","source_ref"],"title":"ProposeParallelPipeRemediationRequest"},"ProposePipeDiameterRemediationRequest":{"properties":{"flow_lpm":{"type":"number","title":"Flow Lpm"},"candidate_diameters_mm":{"items":{"type":"number"},"type":"array","title":"Candidate Diameters Mm"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["flow_lpm","candidate_diameters_mm","source_ref"],"title":"ProposePipeDiameterRemediationRequest"},"ProtectiveRelay":{"properties":{"id":{"type":"string","title":"Id"}},"type":"object","required":["id"],"title":"ProtectiveRelay","description":"A single protective relay at a substation. Identity only — see `Transformer`'s docstring for\nthe minimal-placeholder pattern and the disclosed-unconsumed-schema-growth rationale, which\napplies identically here. A future IEEE C37-series function (ROADMAP.md Item 4) is this\nplaceholder's most likely real consumer."},"PstScreeningResult":{"properties":{"pst_estimate":{"type":"number","title":"Pst Estimate"},"plt_estimate":{"type":"number","title":"Plt Estimate"},"pst_planning_limit":{"type":"number","title":"Pst Planning Limit"},"plt_planning_limit":{"type":"number","title":"Plt Planning Limit"},"is_compliant":{"type":"boolean","title":"Is Compliant"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["pst_estimate","plt_estimate","pst_planning_limit","plt_planning_limit","is_compliant","provenance"],"title":"PstScreeningResult"},"PullSection":{"properties":{"type":{"type":"string","enum":["straight","bend"],"title":"Type","default":"straight"},"length_ft":{"type":"number","title":"Length Ft","default":0.0},"angle_deg":{"type":"number","title":"Angle Deg","default":90.0},"radius_ft":{"type":"number","title":"Radius Ft","default":3.0}},"type":"object","title":"PullSection"},"RackCapacityPlanResponse":{"properties":{"additional_gpus_needed":{"type":"integer","title":"Additional Gpus Needed"},"gpus_per_rack":{"type":"integer","title":"Gpus Per Rack"},"racks_needed":{"type":"integer","title":"Racks Needed"},"total_gpu_capacity_added":{"type":"integer","title":"Total Gpu Capacity Added"},"surplus_gpu_capacity":{"type":"integer","title":"Surplus Gpu Capacity"}},"type":"object","required":["additional_gpus_needed","gpus_per_rack","racks_needed","total_gpu_capacity_added","surplus_gpu_capacity"],"title":"RackCapacityPlanResponse"},"RackThermalLoad":{"properties":{"name":{"type":"string","title":"Name"},"liquid_cooling_kw":{"type":"number","title":"Liquid Cooling Kw"},"air_cooling_kw":{"type":"number","title":"Air Cooling Kw"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["name","liquid_cooling_kw","air_cooling_kw","source_ref"],"title":"RackThermalLoad"},"RecommendConduitSizeRequest":{"properties":{"cable_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cable Types"},"cable_od_in_list":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Cable Od In List"},"conduit_material":{"type":"string","title":"Conduit Material","default":"PVC_40"},"include_spare":{"type":"boolean","title":"Include Spare","default":true}},"type":"object","title":"RecommendConduitSizeRequest"},"RecommendIntermediateVaultsRequest":{"properties":{"total_length_ft":{"type":"number","title":"Total Length Ft"},"cable_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cable Type"},"cable_weight_per_ft_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cable Weight Per Ft Lb"},"max_tension_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Tension Lb"},"coefficient_of_friction":{"type":"number","title":"Coefficient Of Friction","default":0.35},"cable_count":{"type":"integer","title":"Cable Count","default":3},"bend_angles_deg":{"anyOf":[{"items":{"type":"number"},"type":"array"},{"type":"null"}],"title":"Bend Angles Deg"}},"type":"object","required":["total_length_ft"],"title":"RecommendIntermediateVaultsRequest"},"RecommendPmhCompanionVaultRequest":{"properties":{"traffic_rating":{"type":"string","title":"Traffic Rating","default":"full"}},"type":"object","title":"RecommendPmhCompanionVaultRequest"},"RecommendVaultSizeRequest":{"properties":{"conduit_count":{"type":"integer","title":"Conduit Count"},"cable_count":{"type":"integer","title":"Cable Count","default":0},"has_equipment":{"type":"boolean","title":"Has Equipment","default":false},"equipment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Equipment Type"},"voltage_kv":{"type":"number","title":"Voltage Kv","default":12.47},"vault_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Type"}},"type":"object","required":["conduit_count"],"title":"RecommendVaultSizeRequest"},"RedundancyCapacityMarginResult":{"properties":{"unit_count":{"type":"integer","title":"Unit Count"},"failed_unit_count":{"type":"integer","title":"Failed Unit Count"},"per_unit_capacity":{"type":"number","title":"Per Unit Capacity"},"required_capacity":{"type":"number","title":"Required Capacity"},"available_capacity":{"type":"number","title":"Available Capacity"},"margin":{"type":"number","title":"Margin"},"margin_percent":{"type":"number","title":"Margin Percent"},"provenance":{"$ref":"#/components/schemas/controls_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["unit_count","failed_unit_count","per_unit_capacity","required_capacity","available_capacity","margin","margin_percent","provenance"],"title":"RedundancyCapacityMarginResult"},"RedundantSystemAvailabilityResult":{"properties":{"component_availabilities":{"items":{"type":"number"},"type":"array","title":"Component Availabilities"},"component_count":{"type":"integer","title":"Component Count"},"required_count":{"type":"integer","title":"Required Count"},"system_availability":{"type":"number","title":"System Availability"},"provenance":{"$ref":"#/components/schemas/controls_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["component_availabilities","component_count","required_count","system_availability","provenance"],"title":"RedundantSystemAvailabilityResult"},"ReplacementConstructionClassification":{"properties":{"has_third_party_communications":{"type":"boolean","title":"Has Third Party Communications","default":false},"ownership_model":{"type":"string","enum":["solely_owned","jointly_used","unknown"],"title":"Ownership Model","default":"unknown"},"has_riser":{"type":"boolean","title":"Has Riser","default":false},"riser_roles":{"items":{"type":"string","enum":["communications","electric"]},"type":"array","title":"Riser Roles"},"has_comm_riser":{"type":"boolean","title":"Has Comm Riser","default":false},"has_power_riser":{"type":"boolean","title":"Has Power Riser","default":false},"requires_same_hole_set":{"type":"boolean","title":"Requires Same Hole Set","default":false},"same_hole_set_driver":{"type":"string","enum":["power_riser","communications_riser","mixed_riser","none","unknown"],"title":"Same Hole Set Driver","default":"none"},"same_hole_set_joint_use_metric":{"type":"string","enum":["electric","communications","shared","none","unknown"],"title":"Same Hole Set Joint Use Metric","default":"none"},"requires_topping":{"type":"boolean","title":"Requires Topping","default":false},"transfer_by_replacing_utility_allowed":{"type":"string","enum":["all","power_only","unknown"],"title":"Transfer By Replacing Utility Allowed","default":"unknown"},"electric_transfer_count":{"type":"integer","title":"Electric Transfer Count","default":0},"communications_transfer_count":{"type":"integer","title":"Communications Transfer Count","default":0},"transfer_attachment_count":{"type":"integer","title":"Transfer Attachment Count","default":0},"has_shared_anchor":{"type":"boolean","title":"Has Shared Anchor","default":false},"has_shared_joint_use_anchor":{"type":"boolean","title":"Has Shared Joint Use Anchor","default":false},"shared_joint_use_anchor_count":{"type":"integer","title":"Shared Joint Use Anchor Count","default":0},"anchor_supported_roles":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Anchor Supported Roles"}},"type":"object","title":"ReplacementConstructionClassification"},"ReplacementPlanningPairResult":{"properties":{"existing":{"$ref":"#/components/schemas/ClassifyCircuitsResult"},"installation":{"$ref":"#/components/schemas/ClassifyCircuitsResult"}},"type":"object","required":["existing","installation"],"title":"ReplacementPlanningPairResult","description":"Existing/installation pairing convention for replacement-planning consumers -- see\n`enrich_pole_for_replacement_planning.py`'s own module docstring."},"RequiredGuyCheck":{"properties":{"description":{"type":"string","title":"Description"},"required_direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Required Direction Deg"},"status":{"type":"string","enum":["compliant","missing"],"title":"Status"},"matched_guy_ids":{"items":{"type":"string"},"type":"array","title":"Matched Guy Ids"},"height_warnings":{"items":{"type":"string"},"type":"array","title":"Height Warnings"}},"type":"object","required":["description","status"],"title":"RequiredGuyCheck","description":"One required-guy-direction slot from a crossarm's `guying_placement_validation` block,\ncarried through into the guying compliance report with its height check attached."},"RequiredVegetationClearanceRequest":{"properties":{"voltage_kv":{"type":"number","title":"Voltage Kv"},"source_ref":{"type":"string","title":"Source Ref"},"fire_zone":{"type":"string","title":"Fire Zone","default":"none"},"conductor_insulation":{"type":"string","title":"Conductor Insulation","default":"bare"},"is_distribution":{"type":"boolean","title":"Is Distribution","default":true}},"type":"object","required":["voltage_kv","source_ref"],"title":"RequiredVegetationClearanceRequest"},"ResultantGuyTensionRequest":{"properties":{"pull_force_lb":{"type":"number","title":"Pull Force Lb"},"pull_direction_deg":{"type":"number","title":"Pull Direction Deg"},"guy_direction_deg":{"type":"number","title":"Guy Direction Deg"},"attachment_height_ft":{"type":"number","title":"Attachment Height Ft"},"anchor_distance_ft":{"type":"number","title":"Anchor Distance Ft"},"source_ref":{"type":"string","title":"Source Ref"},"guy_capacity_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Guy Capacity Lb"}},"type":"object","required":["pull_force_lb","pull_direction_deg","guy_direction_deg","attachment_height_ft","anchor_distance_ft","source_ref"],"title":"ResultantGuyTensionRequest"},"ResultantGuyTensionResult":{"properties":{"horizontal_component_lb":{"type":"number","title":"Horizontal Component Lb"},"lead_angle_deg":{"type":"number","title":"Lead Angle Deg"},"slant_length_ft":{"type":"number","title":"Slant Length Ft"},"required_tension_lb":{"type":"number","title":"Required Tension Lb"},"guy_capacity_lb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Guy Capacity Lb"},"resultant_tension_lb":{"type":"number","title":"Resultant Tension Lb"},"percent_of_capacity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent Of Capacity"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["horizontal_component_lb","lead_angle_deg","slant_length_ft","required_tension_lb","guy_capacity_lb","resultant_tension_lb","percent_of_capacity","provenance"],"title":"ResultantGuyTensionResult"},"RetrainWeightRequest":{"properties":{"utility_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utility Id"},"profile":{"anyOf":[{"$ref":"#/components/schemas/InlineUtilityProfile"},{"type":"null"}]},"voltage_profile_name":{"type":"string","title":"Voltage Profile Name"},"start":{"$ref":"#/components/schemas/LatLon"},"end":{"$ref":"#/components/schemas/LatLon"},"corridor_percentile":{"type":"number","title":"Corridor Percentile","default":10.0},"layer_key":{"type":"string","title":"Layer Key"},"weight":{"type":"number","title":"Weight"}},"type":"object","required":["voltage_profile_name","start","end","layer_key","weight"],"title":"RetrainWeightRequest"},"RoundTripEfficiencyLossResult":{"properties":{"energy_in_kwh":{"type":"number","title":"Energy In Kwh"},"round_trip_efficiency":{"type":"number","title":"Round Trip Efficiency"},"energy_out_kwh":{"type":"number","title":"Energy Out Kwh"},"energy_lost_kwh":{"type":"number","title":"Energy Lost Kwh"},"provenance":{"$ref":"#/components/schemas/der_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["energy_in_kwh","round_trip_efficiency","energy_out_kwh","energy_lost_kwh","provenance"],"title":"RoundTripEfficiencyLossResult"},"RowWidthHorizontalClearanceInput":{"properties":{"nesc_basic_clearance_ft":{"type":"number","title":"Nesc Basic Clearance Ft"},"line_to_ground_kv":{"type":"number","title":"Line To Ground Kv"},"additional_clearance_adder_ft":{"type":"number","title":"Additional Clearance Adder Ft","default":1.5}},"type":"object","required":["nesc_basic_clearance_ft","line_to_ground_kv"],"title":"RowWidthHorizontalClearanceInput"},"RowWidthResult":{"properties":{"voltage_kv":{"type":"number","title":"Voltage Kv"},"standard_row_width_ft":{"type":"number","title":"Standard Row Width Ft"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["voltage_kv","standard_row_width_ft","provenance"],"title":"RowWidthResult"},"RowWidthSingleLineInput":{"properties":{"outer_phase_separation_ft":{"type":"number","title":"Outer Phase Separation Ft"},"insulator_string_length_ft":{"type":"number","title":"Insulator String Length Ft"},"final_sag_ft":{"type":"number","title":"Final Sag Ft"},"swing_angle_deg":{"type":"number","title":"Swing Angle Deg"},"structure_deflection_ft":{"type":"number","title":"Structure Deflection Ft"},"clearance_ft":{"type":"number","title":"Clearance Ft"}},"type":"object","required":["outer_phase_separation_ft","insulator_string_length_ft","final_sag_ft","swing_angle_deg","structure_deflection_ft","clearance_ft"],"title":"RowWidthSingleLineInput"},"RulingSpanRequest":{"properties":{"span_lengths_ft":{"items":{"type":"number"},"type":"array","title":"Span Lengths Ft"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["span_lengths_ft","source_ref"],"title":"RulingSpanRequest"},"RulingSpanResult":{"properties":{"span_lengths_ft":{"items":{"type":"number"},"type":"array","title":"Span Lengths Ft"},"ruling_span_ft":{"type":"number","title":"Ruling Span Ft"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["span_lengths_ft","ruling_span_ft","provenance"],"title":"RulingSpanResult"},"SagCheckPoint":{"properties":{"label":{"type":"string","title":"Label"},"temp_f":{"type":"number","title":"Temp F"},"ice_in":{"type":"number","title":"Ice In"},"wind_psf":{"type":"number","title":"Wind Psf"},"source_rule":{"type":"string","title":"Source Rule"},"note":{"type":"string","title":"Note"}},"type":"object","required":["label","temp_f","ice_in","wind_psf","source_rule","note"],"title":"SagCheckPoint"},"SagCheckTemperaturesRequest":{"properties":{"code":{"type":"string","title":"Code"},"source_ref":{"type":"string","title":"Source Ref"},"nesc_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nesc District"},"max_operating_temp_f":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Operating Temp F"}},"type":"object","required":["code","source_ref"],"title":"SagCheckTemperaturesRequest"},"SagCheckTemperaturesResult":{"properties":{"code":{"type":"string","enum":["NESC","GO95"],"title":"Code"},"district":{"anyOf":[{"type":"string","enum":["HEAVY","MEDIUM","LIGHT","WARM_ISLAND_UNDER_9000_FT","WARM_ISLAND_OVER_9000_FT"]},{"type":"null"}],"title":"District"},"sag_check_points":{"items":{"$ref":"#/components/schemas/SagCheckPoint"},"type":"array","title":"Sag Check Points"},"clearance_reference_temp_f":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Clearance Reference Temp F"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["code","sag_check_points","rule_refs","provenance"],"title":"SagCheckTemperaturesResult"},"SagTensionState":{"properties":{"tension_lb":{"type":"number","title":"Tension Lb"},"sag_ft":{"type":"number","title":"Sag Ft"},"horizontal_span_ft":{"type":"number","title":"Horizontal Span Ft"},"loaded_unit_weight_lb_per_ft":{"type":"number","title":"Loaded Unit Weight Lb Per Ft"},"temp_f":{"type":"number","title":"Temp F"}},"type":"object","required":["tension_lb","sag_ft","horizontal_span_ft","loaded_unit_weight_lb_per_ft","temp_f"],"title":"SagTensionState"},"SectionTensionResult":{"properties":{"section_id":{"type":"string","title":"Section Id"},"conductor_tag":{"type":"string","title":"Conductor Tag"},"ruling_span_ft":{"type":"number","title":"Ruling Span Ft"},"horizontal_tension_lb":{"type":"number","title":"Horizontal Tension Lb"},"final_unit_weight_lb_per_ft":{"type":"number","title":"Final Unit Weight Lb Per Ft"},"percent_of_rbs":{"type":"number","title":"Percent Of Rbs"},"iterations":{"type":"integer","title":"Iterations"}},"type":"object","required":["section_id","conductor_tag","ruling_span_ft","horizontal_tension_lb","final_unit_weight_lb_per_ft","percent_of_rbs","iterations"],"title":"SectionTensionResult"},"SegmentType":{"type":"string","enum":["sidewalk","landing","ramp","curb_ramp"],"title":"SegmentType"},"SeparationMethod":{"type":"string","enum":["landscaping_or_non_prepared_surface","detectable_vertical_edge","none"],"title":"SeparationMethod"},"SequenceImpedance":{"properties":{"r_ohm":{"type":"number","title":"R Ohm"},"x_ohm":{"type":"number","title":"X Ohm"}},"type":"object","required":["r_ohm","x_ohm"],"title":"SequenceImpedance"},"ServiceInstallationCategory":{"type":"string","enum":["single_branch_circuit","not_more_than_two_branch_circuits","one_family_dwelling","all_others"],"title":"ServiceInstallationCategory","description":"NEC 230.79's four installation categories, each with its own flat minimum disconnect\nrating. See standards/electrical/nec_2023_article_230_service_disconnects.md."},"ServicePointLoad":{"properties":{"service_point_id":{"type":"string","title":"Service Point Id"},"phase_assignment":{"type":"string","enum":["A","B","C","AB","BC","CA","split_a","split_b","split_both","unknown"],"title":"Phase Assignment"},"load_kva":{"type":"number","title":"Load Kva"}},"type":"object","required":["service_point_id","phase_assignment","load_kva"],"title":"ServicePointLoad"},"SettingDepthRequest":{"properties":{"height_ft":{"type":"number","title":"Height Ft"},"pole_class":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Pole Class"},"species":{"type":"string","title":"Species"},"source_ref":{"type":"string","title":"Source Ref"},"glc_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Glc In"}},"type":"object","required":["height_ft","pole_class","species","source_ref"],"title":"SettingDepthRequest"},"SettingDepthResult":{"properties":{"setting_depth_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Setting Depth Ft"},"method":{"type":"string","enum":["taper","ansi_standard","unknown"],"title":"Method"},"detail":{"type":"string","title":"Detail"},"tip_circ_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tip Circ In"},"ansi_glc_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ansi Glc In"},"standard_depth_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Standard Depth Ft"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["setting_depth_ft","method","detail","provenance"],"title":"SettingDepthResult"},"SheathBondingLossFactorResult":{"properties":{"circulating_current_loss_factor":{"type":"number","title":"Circulating Current Loss Factor"},"sheath_circuit_reactance_ohm_per_m":{"type":"number","title":"Sheath Circuit Reactance Ohm Per M"},"sheath_resistance_ohm_per_m":{"type":"number","title":"Sheath Resistance Ohm Per M"},"conductor_ac_resistance_ohm_per_m":{"type":"number","title":"Conductor Ac Resistance Ohm Per M"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["circulating_current_loss_factor","sheath_circuit_reactance_ohm_per_m","sheath_resistance_ohm_per_m","conductor_ac_resistance_ohm_per_m","provenance"],"title":"SheathBondingLossFactorResult"},"SheathStandingVoltageResult":{"properties":{"sheath_standing_voltage_v":{"type":"number","title":"Sheath Standing Voltage V"},"induced_voltage_gradient_v_per_m":{"type":"number","title":"Induced Voltage Gradient V Per M"},"bonded_length_m":{"type":"number","title":"Bonded Length M"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["sheath_standing_voltage_v","induced_voltage_gradient_v_per_m","bonded_length_m","provenance"],"title":"SheathStandingVoltageResult"},"ShieldWire":{"properties":{"node_id":{"type":"string","title":"Node Id"},"provenance":{"anyOf":[{"$ref":"#/components/schemas/utm_agent_harness__ontology__provenance__Provenance"},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"structure_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Structure Id"},"shield_wire_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shield Wire Type"},"fiber_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fiber Count"},"attachment_height_m":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Attachment Height M"},"span_direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Span Direction Deg"},"span_length_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Span Length M"},"sag_depth_m":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Sag Depth M"},"span_start_offset_m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Span Start Offset M"}},"additionalProperties":true,"type":"object","required":["node_id"],"title":"ShieldWire","description":"A single shield wire / OPGW span attached to one structure (lightning protection —\nconceptually adjacent to but architecturally separate from the grounding-grid-study work\nplanned for `circuit-calc-harness`, not this node's concern). `structure_id` is the tower this\nwire attaches to; the span itself is a wire strung from that structure toward a NEIGHBORING\none, per `grid-model-forge`'s own real `buildShieldWire(params: ShieldWireSpanParams)` shape.\n\n`attachment_height_m`/`span_direction_deg`/`span_length_m` added 2026-07-28\n(gateway_core_integration_plan.md Part LXXXVI) — the real span fields `render_model.py`'s\n`emit_portable_model` needs to drive `ShieldWireSpanParams`'s own required\n`heightFt`/`rotationDeg`/`spanFt`. Per Julius's own explicit decision this pass (the\n`grid_graph.Pole`/`SpanRef` shared-mechanism route investigated in Part LXXXV was rejected —\nlattice towers are structurally different from poles, and that route was much bigger than\nexpected), this is a LOCAL flat model on this existing node — not a new top-level `Span`\nontology type, and not a `grid_graph`-shared mechanism. `ShieldWire` already existed as its\nown top-level node referencing a structure by `structure_id` (the same real pattern\n`AttachmentHardware`/`Insulator`/`Conductor` use); these are real missing fields on an\nexisting type, the same class of gap `PerimeterFence.perimeter_length_ft`/USM's `Transformer`\nrating fields closed elsewhere in this family, not a design fork. None means \"not yet\nspecified\" — a real per-site survey/design fact this repo never invents; `render_model.py`\nskips emitting this wire's `shield_wire` component when any of the three required fields is\nabsent, same \"skip, don't fabricate\" discipline as every other emitter in this family.\n`sag_depth_m`/`span_start_offset_m` are optional, matching `ShieldWireSpanParams`'s own\noptional `sagDepthFt`/`startOffsetFt`."},"SignalDeviceType":{"type":"string","enum":["traffic_signal_or_hybrid_beacon","pedestrian_activated_warning_device"],"title":"SignalDeviceType"},"SizeRiserConduitRequest":{"properties":{"cable_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cable Type"},"cable_od_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cable Od In"},"cable_count":{"type":"integer","title":"Cable Count","default":3},"conduit_material":{"type":"string","title":"Conduit Material","default":"rigid_steel"}},"type":"object","title":"SizeRiserConduitRequest"},"SoilProfileInput":{"properties":{"resistivity_ohm_m":{"type":"number","title":"Resistivity Ohm M"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["resistivity_ohm_m"],"title":"SoilProfileInput"},"SourceKind":{"type":"string","enum":["dsx_usd_extract","stub"],"title":"SourceKind","description":"Where a value was sourced from."},"SourceRef-Output":{"properties":{"source_system":{"type":"string","title":"Source System"},"source_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Key"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"additionalProperties":true,"type":"object","required":["source_system"],"title":"SourceRef"},"SourceReference":{"properties":{"kind":{"$ref":"#/components/schemas/SourceKind"},"dataset_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Version"},"asset_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset File"}},"type":"object","required":["kind"],"title":"SourceReference","description":"Traceability back to the DSX dataset asset/layer a value came from."},"Span":{"properties":{"span_id":{"type":"string","title":"Span Id"},"wire_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wire Id"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size"},"rotation_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rotation Deg"},"length":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"endpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint Id"},"endpoint_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint Type"},"conductor_diameter_in":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Conductor Diameter In"},"weight_per_in_lbs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Weight Per In Lbs"},"rated_strength_lbs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rated Strength Lbs"},"tension_lbs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tension Lbs"},"modulus_of_elasticity_psi":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Modulus Of Elasticity Psi"},"tension_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tension Group"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["span_id"],"title":"Span"},"SpanClearancePair":{"properties":{"upper_crossarm_id":{"type":"string","title":"Upper Crossarm Id"},"lower_crossarm_id":{"type":"string","title":"Lower Crossarm Id"},"upper_voltage_v":{"type":"number","title":"Upper Voltage V"},"lower_voltage_v":{"type":"number","title":"Lower Voltage V"},"upper_attachment_height_ft":{"type":"number","title":"Upper Attachment Height Ft"},"lower_attachment_height_ft":{"type":"number","title":"Lower Attachment Height Ft"},"related":{"type":"boolean","title":"Related"},"per_state":{"items":{"$ref":"#/components/schemas/SpanClearanceStateCheck"},"type":"array","title":"Per State"},"is_compliant":{"type":"boolean","title":"Is Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"}},"type":"object","required":["upper_crossarm_id","lower_crossarm_id","upper_voltage_v","lower_voltage_v","upper_attachment_height_ft","lower_attachment_height_ft","related","per_state","is_compliant","violations","rule_refs"],"title":"SpanClearancePair"},"SpanClearanceStateCheck":{"properties":{"state":{"type":"string","title":"State"},"temp_f":{"type":"number","title":"Temp F"},"ice_in":{"type":"number","title":"Ice In"},"wind_psf":{"type":"number","title":"Wind Psf"},"upper_midspan_ft":{"type":"number","title":"Upper Midspan Ft"},"lower_midspan_ft":{"type":"number","title":"Lower Midspan Ft"},"actual_separation_ft":{"type":"number","title":"Actual Separation Ft"},"required_separation_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Required Separation Ft"},"status":{"type":"string","enum":["ok","violation","unknown"],"title":"Status"},"source_rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Rule"}},"type":"object","required":["state","temp_f","ice_in","wind_psf","upper_midspan_ft","lower_midspan_ft","actual_separation_ft","required_separation_ft","status"],"title":"SpanClearanceStateCheck"},"SpanGuy":{"properties":{"span_guy_id":{"type":"string","title":"Span Guy Id"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"attachment_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"distance":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["span_guy_id"],"title":"SpanGuy","description":"A guy that runs from this pole to a backup stub or another anchoring structure pole, NOT\ndown to a ground anchor. O-Calc's GuyBrace Type=\"Span/Head\" (vs. Type=\"Down\"); SPIDA models\nit as a paired structure, each end sharing the same `external_id`. PLS-POLE has no\nequivalent concept -- `PlsPoleModel`-derived poles simply never populate `span_guys`."},"SpanValidationInput":{"properties":{"span_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Span Size"},"span_material":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Span Material"},"span_rotation_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Span Rotation Deg"},"span_length_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Span Length Ft"},"tension_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tension Group"},"tension_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tension Percent"},"tension_type":{"anyOf":[{"type":"string","enum":["full","reduced","slack","unknown"]},{"type":"null"}],"title":"Tension Type"}},"type":"object","title":"SpanValidationInput"},"SpecifyRiserEquipmentRequest":{"properties":{"voltage_kv":{"type":"number","title":"Voltage Kv","default":12.47},"cable_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cable Type"},"cable_count":{"type":"integer","title":"Cable Count","default":3},"termination_type":{"type":"string","title":"Termination Type","default":"elbow"}},"type":"object","title":"SpecifyRiserEquipmentRequest"},"SpidaPoleModel-Input":{"properties":{"model_version":{"type":"string","title":"Model Version","default":"1.0.0"},"identity":{"$ref":"#/components/schemas/PoleIdentity"},"geometry":{"$ref":"#/components/schemas/PoleGeometry"},"crossarms":{"items":{"$ref":"#/components/schemas/Crossarm-Input"},"type":"array","title":"Crossarms"},"pole_mounted_insulators":{"items":{"$ref":"#/components/schemas/overhead_pole_model__models__Insulator"},"type":"array","title":"Pole Mounted Insulators"},"guys":{"items":{"$ref":"#/components/schemas/Guy"},"type":"array","title":"Guys"},"span_guys":{"items":{"$ref":"#/components/schemas/SpanGuy"},"type":"array","title":"Span Guys"},"anchors":{"items":{"$ref":"#/components/schemas/Anchor"},"type":"array","title":"Anchors"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Attachments"},"equipment":{"items":{"$ref":"#/components/schemas/Equipment"},"type":"array","title":"Equipment"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["identity"],"title":"SpidaPoleModel","description":"Thin subclass, no new fields today -- see this module's own docstring."},"SpidaPoleModel-Output":{"properties":{"model_version":{"type":"string","title":"Model Version","default":"1.0.0"},"identity":{"$ref":"#/components/schemas/PoleIdentity"},"geometry":{"$ref":"#/components/schemas/PoleGeometry"},"crossarms":{"items":{"$ref":"#/components/schemas/Crossarm-Output"},"type":"array","title":"Crossarms"},"pole_mounted_insulators":{"items":{"$ref":"#/components/schemas/Insulator-Output"},"type":"array","title":"Pole Mounted Insulators"},"guys":{"items":{"$ref":"#/components/schemas/Guy"},"type":"array","title":"Guys"},"span_guys":{"items":{"$ref":"#/components/schemas/SpanGuy"},"type":"array","title":"Span Guys"},"anchors":{"items":{"$ref":"#/components/schemas/Anchor"},"type":"array","title":"Anchors"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","title":"Attachments"},"equipment":{"items":{"$ref":"#/components/schemas/Equipment"},"type":"array","title":"Equipment"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["identity"],"title":"SpidaPoleModel","description":"Thin subclass, no new fields today -- see this module's own docstring."},"StandardRowWidthRequest":{"properties":{"voltage_kv":{"type":"number","title":"Voltage Kv"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["voltage_kv","source_ref"],"title":"StandardRowWidthRequest"},"StateOfChargeResult":{"properties":{"present_energy_kwh":{"type":"number","title":"Present Energy Kwh"},"usable_energy_capacity_kwh":{"type":"number","title":"Usable Energy Capacity Kwh"},"soc_fraction":{"type":"number","title":"Soc Fraction"},"soc_percent":{"type":"number","title":"Soc Percent"},"provenance":{"$ref":"#/components/schemas/der_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["present_energy_kwh","usable_energy_capacity_kwh","soc_fraction","soc_percent","provenance"],"title":"StateOfChargeResult"},"StoredCapacityData":{"properties":{"percent_at_mcu":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent At Mcu"},"height_of_mcu_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Height Of Mcu Ft"},"percent_at_gl":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent At Gl"},"percent_vertical_load":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent Vertical Load"},"buckling_column_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Buckling Column Height Ft"},"guy_wire_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guy Wire Status"},"applied_go95_rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Applied Go95 Rule"},"pole_strength_factor":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pole Strength Factor"},"pole_factor_of_safety":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pole Factor Of Safety"},"bending_factor_of_safety":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Bending Factor Of Safety"},"vertical_factor_of_safety":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vertical Factor Of Safety"}},"additionalProperties":true,"type":"object","title":"StoredCapacityData","description":"The 11 fields OCalcAnalyzer.get_capacity_summary reads off a PPLX file's own\n<Capacity><Stored> XML block -- values O-Calc's own desktop app already computed and\nsaved, not re-derived here. All Optional: a file that was never calculated in the\ndesktop app (or was calculated but not re-saved) has no <Capacity> element at all."},"StreetFurnitureType":{"type":"string","enum":["portable_toilet","table"],"title":"StreetFurnitureType"},"Substation":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"nominal_voltage_v":{"type":"number","exclusiveMinimum":0.0,"title":"Nominal Voltage V"},"bil_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Bil Kv"},"bus_configuration":{"anyOf":[{"$ref":"#/components/schemas/BusConfiguration"},{"type":"null"}]},"perimeter_fence":{"anyOf":[{"$ref":"#/components/schemas/PerimeterFence"},{"type":"null"}]},"circuit_count":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Circuit Count"},"tube_nominal_size_in":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Tube Nominal Size In"},"tie_breaker_count":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Tie Breaker Count"},"breakers":{"items":{"$ref":"#/components/schemas/CircuitBreaker"},"type":"array","title":"Breakers"},"jurisdiction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jurisdiction"},"is_attended":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Attended"},"transformers":{"items":{"$ref":"#/components/schemas/Transformer"},"type":"array","title":"Transformers"},"disconnect_switches":{"items":{"$ref":"#/components/schemas/DisconnectSwitch"},"type":"array","title":"Disconnect Switches"},"current_transformers":{"items":{"$ref":"#/components/schemas/CurrentTransformer"},"type":"array","title":"Current Transformers"},"potential_transformers":{"items":{"$ref":"#/components/schemas/PotentialTransformer"},"type":"array","title":"Potential Transformers"},"protective_relays":{"items":{"$ref":"#/components/schemas/ProtectiveRelay"},"type":"array","title":"Protective Relays"},"gantries":{"items":{"$ref":"#/components/schemas/Gantry"},"type":"array","title":"Gantries"},"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude"},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude"},"elevation_m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation M"}},"type":"object","required":["id","nominal_voltage_v"],"title":"Substation","description":"A single substation site — phase-1 scope per `USM-KICKOFF.md`: \"site containing bus\nconfigurations, breakers, transformers, and protection/control equipment,\" modeled here only\nto the depth the check functions built so far need. `nominal_voltage_v` is the site's primary\n(highest) voltage class, used to look up the NESC Table 110-1 clearance requirement.\n`circuit_count` is the number of external circuits (lines/feeders) terminating at the site —\na topology fact, not an equipment type, used by `check_bus_configuration_breaker_count`\nalongside `breakers`. `jurisdiction` (added 2026-07-18 for `validate_substation.py`'s adapter)\nis the same jurisdiction/utility key every `electric_supply_stations` check function's\n`jurisdiction` parameter already accepts — see `config/electric_supply_stations/\n{regulatory_status,local_requirement_overrides}.py`. NOT consumed by\n`check_bus_configuration_breaker_count` (`functions/bus_topology/`) — by design, a\nbus-topology ratio isn't jurisdiction-adopted; see `functions/bus_topology/result.py`'s module\ndocstring. (Corrected 2026-07-18 per `validate_substation.py`'s own AI-assisted pre-review\nFinding 1 — this docstring previously overclaimed \"every check function.\")"},"SubstationValidationResult":{"properties":{"substation_id":{"type":"string","title":"Substation Id"},"fence_clearance":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"fence_height":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"equipment_ground_clearance":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"rigid_bus_metal_to_metal_clearance":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"rigid_bus_phase_spacing":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"rigid_bus_grounded_parts_clearance":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"roadway_overhead_clearance":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"air_switch_metal_to_metal_clearance":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"vertical_break_disconnect_switch_spacing":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"side_horizontal_break_disconnect_switch_spacing":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"horn_gap_switch_spacing":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"insulator_cantilever_strength":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"fence_grounding_bonding_completeness":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"safety_sign_placement":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"illumination_levels":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"emergency_lighting":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"floor_passageway_safety":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"exit_requirements":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"fire_extinguishing_equipment":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"lighting_and_receptacle_installation":{"$ref":"#/components/schemas/usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult"},"bus_configuration_breaker_count":{"$ref":"#/components/schemas/TopologyCheckResult"}},"type":"object","required":["substation_id","fence_clearance","fence_height","equipment_ground_clearance","rigid_bus_metal_to_metal_clearance","rigid_bus_phase_spacing","rigid_bus_grounded_parts_clearance","roadway_overhead_clearance","air_switch_metal_to_metal_clearance","vertical_break_disconnect_switch_spacing","side_horizontal_break_disconnect_switch_spacing","horn_gap_switch_spacing","insulator_cantilever_strength","fence_grounding_bonding_completeness","safety_sign_placement","illumination_levels","emergency_lighting","floor_passageway_safety","exit_requirements","fire_extinguishing_equipment","lighting_and_receptacle_installation","bus_configuration_breaker_count"],"title":"SubstationValidationResult"},"SummarizeCapacityRequest":{"properties":{"stored":{"$ref":"#/components/schemas/StoredCapacityData"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["stored","source_ref"],"title":"SummarizeCapacityRequest"},"SurfaceLayerDeratingResult":{"properties":{"derating_factor":{"type":"number","title":"Derating Factor"},"native_soil_resistivity_ohm_m":{"type":"number","title":"Native Soil Resistivity Ohm M"},"surface_material_resistivity_ohm_m":{"type":"number","title":"Surface Material Resistivity Ohm M"},"surface_layer_thickness_m":{"type":"number","title":"Surface Layer Thickness M"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["derating_factor","native_soil_resistivity_ohm_m","surface_material_resistivity_ohm_m","surface_layer_thickness_m","provenance"],"title":"SurfaceLayerDeratingResult"},"SwitchLocationCategory":{"type":"string","enum":["bathroom","hallway","stairway","habitable_room","other"],"title":"SwitchLocationCategory","description":"Only these four categories trigger the 404.2(C) neutral-at-switch-location rule at all, per\nthe rule's own stated scope. Other real-world locations (e.g. a garage) are modeled as OTHER,\nwhich never triggers 404.2(C) -- not a broader judgment about neutral best practice."},"TalonDataQualityFlag":{"properties":{"code":{"type":"string","enum":["glc_is_ansi_tip_circumference","height_inferred_from_max_attachment"],"title":"Code"},"message":{"type":"string","title":"Message"},"original_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Original Height Ft"},"inferred_height_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Inferred Height Ft"},"max_attachment_agl_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Attachment Agl Ft"}},"type":"object","required":["code","message"],"title":"TalonDataQualityFlag","description":"Mirrors the two data-quality passes `_enrich_talon_data_quality` runs in the origin --\nsee `parse_talon_structure.py`'s own module docstring for what each means and why."},"TamperResistantOccupancyCategory":{"type":"string","enum":["dwelling_unit_general","dwelling_unit_common_area","dwelling_attached_garage_or_accessory_building","boathouse_mobile_or_manufactured_home","hotel_motel_guest_room_or_suite","hotel_motel_common_area","child_care_facility_or_preschool","educational_facility_k12","clinic_or_medical_office","assembly_occupancy","dormitory_unit","residential_care_or_group_home_or_rehab_facility","other_not_listed"],"title":"TamperResistantOccupancyCategory","description":"The ten original categories corroborated this ingestion pass -- NOT confirmed as the\ncomplete, correctly-numbered official 406.12(1)-(8) list. OTHER_NOT_LISTED resolves to\nNOT_EVALUATED, never a silent 'not required'. DWELLING_UNIT_COMMON_AREA and\nHOTEL_MOTEL_COMMON_AREA were added 2026-07-17 per an AI-assisted pre-review pass that found two\nindependent direct-page sources describing 406.12 as extending to common areas of multifamily\ndwellings and hotels/motels, not just individual units/rooms -- a real false-negative gap in\nthe original ten (a common-area receptacle had no matching category and would default to\nNOT_EVALUATED). Both are deliberately held at NOT_EVALUATED, not asserted REQUIRED, pending\nconfirmation -- same \"represent it, don't assert an unconfirmed threshold\" posture as the\nGFCI/AFCI function's crawl-space/boat-house additions. See\nstandards/electrical/nec_2023_article_406_receptacles.md and VALIDATION.md."},"TerminalRatingClass":{"type":"string","enum":["60C","75C","90C"],"title":"TerminalRatingClass","description":"The Table 310.16 temperature column that governs a given installation, per NEC 110.14(C)'s\nequipment/terminal listing rules -- which this function does NOT determine (see module\ndocstring). The caller must state which column applies."},"ThresholdGaugeChartData":{"properties":{"value":{"type":"number","title":"Value"},"value_label":{"type":"string","title":"Value Label"},"unit":{"type":"string","title":"Unit"},"thresholds":{"items":{"$ref":"#/components/schemas/GaugeThreshold"},"type":"array","title":"Thresholds"},"exceeds_any_threshold":{"type":"boolean","title":"Exceeds Any Threshold"},"provenance":{"$ref":"#/components/schemas/thermal_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["value","value_label","unit","thresholds","exceeds_any_threshold","provenance"],"title":"ThresholdGaugeChartData"},"TolerableVoltageResult":{"properties":{"derating_factor":{"type":"number","title":"Derating Factor"},"surface_material_resistivity_ohm_m":{"type":"number","title":"Surface Material Resistivity Ohm M"},"shock_duration_sec":{"type":"number","title":"Shock Duration Sec"},"tolerable_touch_volts_50kg":{"type":"number","title":"Tolerable Touch Volts 50Kg"},"tolerable_touch_volts_70kg":{"type":"number","title":"Tolerable Touch Volts 70Kg"},"tolerable_step_volts_50kg":{"type":"number","title":"Tolerable Step Volts 50Kg"},"tolerable_step_volts_70kg":{"type":"number","title":"Tolerable Step Volts 70Kg"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["derating_factor","surface_material_resistivity_ohm_m","shock_duration_sec","tolerable_touch_volts_50kg","tolerable_touch_volts_70kg","tolerable_step_volts_50kg","tolerable_step_volts_70kg","provenance"],"title":"TolerableVoltageResult"},"TopologyCheckResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"basis_cited":{"type":"string","title":"Basis Cited"}},"type":"object","required":["compliant","basis_cited"],"title":"TopologyCheckResult"},"TransferSwitchRideThroughMarginResult":{"properties":{"transfer_time_s":{"type":"number","title":"Transfer Time S"},"ride_through_time_s":{"type":"number","title":"Ride Through Time S"},"margin_s":{"type":"number","title":"Margin S"},"margin_percent":{"type":"number","title":"Margin Percent"},"provenance":{"$ref":"#/components/schemas/controls_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["transfer_time_s","ride_through_time_s","margin_s","margin_percent","provenance"],"title":"TransferSwitchRideThroughMarginResult"},"Transformer":{"properties":{"id":{"type":"string","title":"Id"},"rated_mva":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Rated Mva"},"hv_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Hv Kv"},"lv_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Lv Kv"},"hv_bushing_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Hv Bushing Kv"},"lv_bushing_kv":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Lv Bushing Kv"}},"type":"object","required":["id"],"title":"Transformer","description":"A single power transformer at a substation.\n\n**Disclosed unconsumed schema growth, added 2026-07-19 directly per the user's explicit request**\nto build out bus/equipment placeholder modeling ahead of a refined equipment model (see\n`ROADMAP.md` Item 5 and Item 9's transformer/bushing-clearance backlog) — no check function reads\nthese fields yet. Same honest-disclosure pattern already used for `PerimeterFence.is_metallic`,\nnot a silent violation of the \"grow with a real consumer\" discipline.\n\n`rated_mva`/`hv_kv`/`lv_kv`/`hv_bushing_kv`/`lv_bushing_kv` added 2026-07-28\n(gateway_core_integration_plan.md Part LXXIX) for `render_model.py`'s grid-model-forge\nemission — the real, confirmed blocker re-verifying Part LXIII's own ranking found:\n`SubstationTransformerParams` requires exactly these five as real nameplate/bushing-class facts,\nno defaults (this repo doesn't invent a transformer's own rating), same never-guess pattern\nevery other emitted field in this schema already follows. `hv_bushing_kv`/`lv_bushing_kv` are\nthe bushing INSULATION CLASS values (grid-model-forge's own schema docstring: these drive\nbushing geometry via creepage distance, not the nominal system voltage directly — a real\ntransformer commonly bushes a lower nominal voltage with a higher standard bushing class).\nOptional cosmetic fields grid-model-forge's own params default sensibly on their own\n(`cooling_class`, `has_conservator`, pad dimensions) are deliberately NOT added here — no\nreal consumer needs to override them yet, per the same minimal-growth discipline\n`CircuitBreaker`'s own docstring states; add them if/when a real caller needs to."},"TransformerCapacityPlanResult":{"properties":{"rack_count":{"type":"integer","title":"Rack Count"},"kw_per_rack":{"type":"number","title":"Kw Per Rack"},"power_factor":{"type":"number","title":"Power Factor"},"total_kva_demand":{"type":"number","title":"Total Kva Demand"},"installed_unit_count":{"type":"integer","title":"Installed Unit Count"},"unit_rated_kva":{"type":"number","title":"Unit Rated Kva"},"installed_kva":{"type":"number","title":"Installed Kva"},"additional_units_needed":{"type":"integer","title":"Additional Units Needed"},"surplus_kva_capacity":{"type":"number","title":"Surplus Kva Capacity"},"provenance":{"$ref":"#/components/schemas/controls_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["rack_count","kw_per_rack","power_factor","total_kva_demand","installed_unit_count","unit_rated_kva","installed_kva","additional_units_needed","surplus_kva_capacity","provenance"],"title":"TransformerCapacityPlanResult"},"TransformerThermalProps":{"properties":{"rated_kva":{"type":"number","title":"Rated Kva"},"cooling_class":{"$ref":"#/components/schemas/CoolingClass","default":"ONAN"},"loss_ratio_r":{"type":"number","title":"Loss Ratio R","default":5.0},"rated_top_oil_rise_c":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rated Top Oil Rise C"},"rated_hottest_spot_rise_c":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rated Hottest Spot Rise C"}},"type":"object","required":["rated_kva"],"title":"TransformerThermalProps","description":"Transformer nameplate + thermal characteristics needed for the model."},"TwoLayerSoilModel":{"properties":{"top_layer_resistivity_ohm_m":{"type":"number","title":"Top Layer Resistivity Ohm M"},"bottom_layer_resistivity_ohm_m":{"type":"number","title":"Bottom Layer Resistivity Ohm M"},"top_layer_thickness_m":{"type":"number","title":"Top Layer Thickness M"},"residual_rms_ohm_m":{"type":"number","title":"Residual Rms Ohm M"},"num_readings":{"type":"integer","title":"Num Readings"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["top_layer_resistivity_ohm_m","bottom_layer_resistivity_ohm_m","top_layer_thickness_m","residual_rms_ohm_m","num_readings","provenance"],"title":"TwoLayerSoilModel"},"TypicalSoilThermalResistivityRequest":{"properties":{"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"remarks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remarks"}},"type":"object","title":"TypicalSoilThermalResistivityRequest"},"UndergroundCableAmpacityResult":{"properties":{"ampacity_amps":{"type":"number","title":"Ampacity Amps"},"delta_t_k":{"type":"number","title":"Delta T K"},"t1_k_m_per_w":{"type":"number","title":"T1 K M Per W"},"t4_k_m_per_w":{"type":"number","title":"T4 K M Per W"},"total_thermal_resistance_k_m_per_w":{"type":"number","title":"Total Thermal Resistance K M Per W"},"ac_resistance_ohm_per_m":{"type":"number","title":"Ac Resistance Ohm Per M"},"dielectric_loss_w_per_m":{"type":"number","title":"Dielectric Loss W Per M"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["ampacity_amps","delta_t_k","t1_k_m_per_w","t4_k_m_per_w","total_thermal_resistance_k_m_per_w","ac_resistance_ohm_per_m","dielectric_loss_w_per_m","provenance"],"title":"UndergroundCableAmpacityResult"},"UndergroundInstallationLocation":{"type":"string","enum":["general","trench_below_2in_concrete_or_equivalent","under_building","under_4in_concrete_slab_no_vehicular_traffic","under_street_highway_road_alley_driveway_parking_lot","one_two_family_dwelling_driveway_or_outdoor_parking","airport_runway"],"title":"UndergroundInstallationLocation","description":"Table 300.5(A)'s location rows. See the standards file for which rows are well-corroborated\nvs. flagged UNCONFIRMED."},"UndergroundWiringMethod":{"type":"string","enum":["direct_burial_cable_or_conductor","rigid_metal_or_intermediate_metal_conduit","emt_or_nonmetallic_raceway","residential_branch_circuit_gfci_protected_max_20a"],"title":"UndergroundWiringMethod","description":"Table 300.5(A)'s wiring-method columns. The 4th column (GFCI-protected residential branch\ncircuit) is a circuit-characteristic category, not tied to a specific physical wiring method —\nsee the standards file for why this function still models it as a 4th mutually-exclusive\ncolumn, matching how every corroborating source presents the table."},"UniformSoilModel":{"properties":{"resistivity_ohm_m":{"type":"number","title":"Resistivity Ohm M"},"coefficient_of_variation":{"type":"number","title":"Coefficient Of Variation"},"num_readings":{"type":"integer","title":"Num Readings"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["resistivity_ohm_m","coefficient_of_variation","num_readings","provenance"],"title":"UniformSoilModel"},"UpliftFinding":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"insulator_id":{"type":"string","title":"Insulator Id"},"insulator_type":{"type":"string","title":"Insulator Type"},"attachment_height_ft":{"type":"number","title":"Attachment Height Ft"},"net_vertical_lb":{"type":"number","title":"Net Vertical Lb"},"severity":{"type":"string","enum":["uplift","tight","ok"],"title":"Severity"},"sides":{"items":{"$ref":"#/components/schemas/UpliftFindingSide"},"type":"array","title":"Sides"},"notes":{"type":"string","title":"Notes"}},"type":"object","required":["pole_id","insulator_id","insulator_type","attachment_height_ft","net_vertical_lb","severity","sides","notes"],"title":"UpliftFinding"},"UpliftFindingSide":{"properties":{"wire_id":{"type":"string","title":"Wire Id"},"length_ft":{"type":"number","title":"Length Ft"},"neighbor_pole_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Neighbor Pole Id"},"neighbor_height_ft":{"type":"number","title":"Neighbor Height Ft"},"this_height_ft":{"type":"number","title":"This Height Ft"},"weight_lb_per_ft":{"type":"number","title":"Weight Lb Per Ft"},"tension_lb":{"type":"number","title":"Tension Lb"},"gravity_lb":{"type":"number","title":"Gravity Lb"},"lift_lb":{"type":"number","title":"Lift Lb"},"net_lb":{"type":"number","title":"Net Lb"}},"type":"object","required":["wire_id","length_ft","neighbor_pole_id","neighbor_height_ft","this_height_ft","weight_lb_per_ft","tension_lb","gravity_lb","lift_lb","net_lb"],"title":"UpliftFindingSide"},"UpliftInsulatorInput":{"properties":{"insulator_id":{"type":"string","title":"Insulator Id"},"insulator_type":{"type":"string","title":"Insulator Type"},"attachment_height_ft":{"type":"number","title":"Attachment Height Ft"},"spans":{"items":{"$ref":"#/components/schemas/UpliftSpanInput"},"type":"array","title":"Spans"}},"type":"object","required":["insulator_id","insulator_type","attachment_height_ft"],"title":"UpliftInsulatorInput"},"UpliftPoleInput":{"properties":{"pole_id":{"type":"string","title":"Pole Id"},"insulators":{"items":{"$ref":"#/components/schemas/UpliftInsulatorInput"},"type":"array","title":"Insulators"}},"type":"object","required":["pole_id"],"title":"UpliftPoleInput"},"UpliftSpanInput":{"properties":{"wire_id":{"type":"string","title":"Wire Id"},"length_ft":{"type":"number","title":"Length Ft"},"weight_lb_per_ft":{"type":"number","title":"Weight Lb Per Ft"},"diameter_in":{"type":"number","title":"Diameter In","default":0.0},"tension_lb":{"type":"number","title":"Tension Lb","default":0.0},"rated_strength_lb":{"type":"number","title":"Rated Strength Lb","default":0.0},"tension_type":{"type":"string","enum":["full","reduced"],"title":"Tension Type","default":"full"}},"type":"object","required":["wire_id","length_ft","weight_lb_per_ft"],"title":"UpliftSpanInput"},"UsableEnergyResult":{"properties":{"nameplate_capacity_kwh":{"type":"number","title":"Nameplate Capacity Kwh"},"depth_of_discharge":{"type":"number","title":"Depth Of Discharge"},"reserve_margin":{"type":"number","title":"Reserve Margin"},"usable_energy_kwh":{"type":"number","title":"Usable Energy Kwh"},"provenance":{"$ref":"#/components/schemas/der_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["nameplate_capacity_kwh","depth_of_discharge","reserve_margin","usable_energy_kwh","provenance"],"title":"UsableEnergyResult"},"UtilityProfileUpsertRequest":{"properties":{"states":{"items":{"type":"string"},"type":"array","title":"States"},"service_territory_ref":{"type":"string","title":"Service Territory Ref","default":""},"voltage_profile_names":{"items":{"type":"string"},"type":"array","title":"Voltage Profile Names","default":["transmission"]},"layer_weights":{"additionalProperties":{"type":"number"},"type":"object","title":"Layer Weights"},"layer_keys":{"items":{"type":"string"},"type":"array","title":"Layer Keys","default":[]},"regional_overlay_keys":{"items":{"type":"string"},"type":"array","title":"Regional Overlay Keys","default":[]}},"type":"object","required":["states","layer_weights"],"title":"UtilityProfileUpsertRequest"},"ValidateGuyingRequest":{"properties":{"framing_results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Framing Results"},"guys":{"anyOf":[{"items":{"$ref":"#/components/schemas/GuyInput"},"type":"array"},{"type":"null"}],"title":"Guys"},"height_tolerance_ft":{"type":"number","title":"Height Tolerance Ft","default":3.0},"corner_split_deg":{"type":"number","title":"Corner Split Deg","default":90.0}},"type":"object","required":["framing_results"],"title":"ValidateGuyingRequest"},"ValidateGuyingResult":{"properties":{"crossarm_results":{"items":{"$ref":"#/components/schemas/CrossarmGuyingResult"},"type":"array","title":"Crossarm Results"},"overall_compliant":{"type":"boolean","title":"Overall Compliant"},"total_crossarms":{"type":"integer","title":"Total Crossarms"},"compliant_count":{"type":"integer","title":"Compliant Count"},"non_compliant_count":{"type":"integer","title":"Non Compliant Count"},"violation_count":{"type":"integer","title":"Violation Count"},"all_violations":{"items":{"type":"string"},"type":"array","title":"All Violations"},"provenance":{"$ref":"#/components/schemas/field_capture_harness__functions__provenance__Provenance"}},"type":"object","required":["crossarm_results","overall_compliant","total_crossarms","compliant_count","non_compliant_count","violation_count","provenance"],"title":"ValidateGuyingResult"},"ValidateSpanClearanceRequest":{"properties":{"crossarms":{"items":{"$ref":"#/components/schemas/MidspanCrossarmInput"},"type":"array","title":"Crossarms"},"code":{"type":"string","title":"Code"},"source_ref":{"type":"string","title":"Source Ref"},"nesc_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nesc District"},"max_operating_temp_f":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Operating Temp F"},"same_utility":{"type":"boolean","title":"Same Utility","default":true}},"type":"object","required":["crossarms","code","source_ref"],"title":"ValidateSpanClearanceRequest"},"ValidateSpanClearanceResult":{"properties":{"code":{"type":"string","enum":["NESC","GO95"],"title":"Code"},"pairs":{"items":{"$ref":"#/components/schemas/SpanClearancePair"},"type":"array","title":"Pairs"},"overall_compliant":{"type":"boolean","title":"Overall Compliant"},"violation_count":{"type":"integer","title":"Violation Count"},"all_violations":{"items":{"type":"string"},"type":"array","title":"All Violations"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["code","pairs","overall_compliant","violation_count","all_violations","warnings","rule_refs","provenance"],"title":"ValidateSpanClearanceResult"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValveActuatorTorqueResult":{"properties":{"differential_pressure_pa":{"type":"number","title":"Differential Pressure Pa"},"seat_diameter_m":{"type":"number","title":"Seat Diameter M"},"torque_coefficient":{"type":"number","title":"Torque Coefficient"},"safety_factor":{"type":"number","title":"Safety Factor"},"base_torque_nm":{"type":"number","title":"Base Torque Nm"},"required_torque_nm":{"type":"number","title":"Required Torque Nm"},"provenance":{"$ref":"#/components/schemas/controls_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["differential_pressure_pa","seat_diameter_m","torque_coefficient","safety_factor","base_torque_nm","required_torque_nm","provenance"],"title":"ValveActuatorTorqueResult"},"ValveStrokeTimeMarginResult":{"properties":{"stroke_time_s":{"type":"number","title":"Stroke Time S"},"required_response_time_s":{"type":"number","title":"Required Response Time S"},"margin_s":{"type":"number","title":"Margin S"},"margin_percent":{"type":"number","title":"Margin Percent"},"provenance":{"$ref":"#/components/schemas/controls_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["stroke_time_s","required_response_time_s","margin_s","margin_percent","provenance"],"title":"ValveStrokeTimeMarginResult"},"VegetationClearanceDerivationResult":{"properties":{"required_inches":{"type":"number","title":"Required Inches"},"nesc_base_inches":{"type":"number","title":"Nesc Base Inches"},"fire_zone_floor_inches":{"type":"number","title":"Fire Zone Floor Inches"},"insulation_reduction_inches":{"type":"number","title":"Insulation Reduction Inches"},"governing_source":{"type":"string","enum":["nesc_base","go_95_fire_zone"],"title":"Governing Source"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["required_inches","nesc_base_inches","fire_zone_floor_inches","insulation_reduction_inches","governing_source","notes","provenance"],"title":"VegetationClearanceDerivationResult"},"VerifyLoadCaseContext":{"properties":{"elevation_ft":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Elevation Ft"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"explicit_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Explicit District"},"max_supply_voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Supply Voltage V"},"has_communication":{"type":"boolean","title":"Has Communication","default":false},"crosses_railroad":{"type":"boolean","title":"Crosses Railroad","default":false},"crosses_limited_access_highway":{"type":"boolean","title":"Crosses Limited Access Highway","default":false},"crosses_navigable_waterway":{"type":"boolean","title":"Crosses Navigable Waterway","default":false},"auto_deenergized_at_crossing":{"type":"boolean","title":"Auto Deenergized At Crossing","default":false},"on_private_row":{"type":"boolean","title":"On Private Row","default":false},"is_dielectric_fiber":{"type":"boolean","title":"Is Dielectric Fiber","default":false},"is_emergency_or_temporary":{"type":"boolean","title":"Is Emergency Or Temporary","default":false},"upper_class":{"anyOf":[{"type":"string","enum":["H","E","L","C"]},{"type":"null"}],"title":"Upper Class"},"lower_class":{"anyOf":[{"type":"string","enum":["H","E","L","C","rr_major","rr_minor"]},{"type":"null"}],"title":"Lower Class"},"csa_upper_class":{"anyOf":[{"type":"string","enum":["communication","supply_0_1000v","supply_gt_1000v"]},{"type":"null"}],"title":"Csa Upper Class"},"csa_lower_items":{"anyOf":[{"items":{"type":"string","enum":["railway_control_facilities_and_tracks","limited_or_controlled_access_highways","roads_and_highways_general","pipelines","navigable_waters_cnwa_listed","other_navigable_waters","non_navigable_waters","aerial_tramways","other_private_or_public_property","communication_cable","communication_open_wire_general","communication_drop_wire","supply_0_1000v","supply_gt_1000v"]},"type":"array"},{"type":"null"}],"title":"Csa Lower Items"},"csa_coordinated_electrical_protection":{"type":"boolean","title":"Csa Coordinated Electrical Protection","default":false},"csa_supply_rts_kn":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Csa Supply Rts Kn"},"csa_upper_supply_effectively_grounded_sheathed_cable":{"type":"boolean","title":"Csa Upper Supply Effectively Grounded Sheathed Cable","default":false},"csa_lower_supply_effectively_grounded_sheathed_cable":{"type":"boolean","title":"Csa Lower Supply Effectively Grounded Sheathed Cable","default":false},"csa_upper_voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Csa Upper Voltage V"},"csa_lower_voltage_v":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Csa Lower Voltage V"}},"type":"object","title":"VerifyLoadCaseContext"},"VerifyLoadCaseIssue":{"properties":{"field":{"type":"string","title":"Field"},"declared":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Declared"},"recommended":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["field","reason"],"title":"VerifyLoadCaseIssue"},"VerifyLoadCaseMatches":{"properties":{"grade":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Grade"},"zone_or_district":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Zone Or District"},"construction_type":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Construction Type"},"overall":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Overall"}},"type":"object","title":"VerifyLoadCaseMatches"},"VerifyLoadCaseRequest":{"properties":{"declared":{"$ref":"#/components/schemas/DeclaredLoadCase"},"context":{"$ref":"#/components/schemas/VerifyLoadCaseContext"},"source_ref":{"type":"string","title":"Source Ref"}},"type":"object","required":["declared","context","source_ref"],"title":"VerifyLoadCaseRequest"},"VerifyLoadCaseResult":{"properties":{"matches":{"$ref":"#/components/schemas/VerifyLoadCaseMatches"},"declared":{"$ref":"#/components/schemas/DeclaredLoadCase"},"recommended_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended Code"},"recommended_grade":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended Grade"},"recommended_zone_or_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recommended Zone Or District"},"issues":{"items":{"$ref":"#/components/schemas/VerifyLoadCaseIssue"},"type":"array","title":"Issues"},"rule_refs":{"items":{"type":"string"},"type":"array","title":"Rule Refs"},"provenance":{"$ref":"#/components/schemas/overhead_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["matches","declared","issues","rule_refs","provenance"],"title":"VerifyLoadCaseResult"},"VoltageDropResult":{"properties":{"current_a":{"type":"number","title":"Current A"},"voltage_drop_v":{"type":"number","title":"Voltage Drop V"},"voltage_drop_percent":{"type":"number","title":"Voltage Drop Percent"},"nominal_line_to_line_volts":{"type":"number","title":"Nominal Line To Line Volts"},"phase_config":{"$ref":"#/components/schemas/ConductorPhaseConfig"},"provenance":{"$ref":"#/components/schemas/circuit_calc_harness__functions__provenance__Provenance"}},"type":"object","required":["current_a","voltage_drop_v","voltage_drop_percent","nominal_line_to_line_volts","phase_config","provenance"],"title":"VoltageDropResult"},"VoltageRideThroughZone":{"type":"string","enum":["ov2","ov1","uv1","uv2"],"title":"VoltageRideThroughZone","description":"The four named voltage ride-through trip points per Category — see the standards file's\n\"Voltage ride-through\" table. OV = overvoltage, UV = undervoltage; the \"1\"/\"2\" suffix is the\nsource charts' own naming (1 = closer to nominal / less severe, 2 = further from nominal /\nmore severe), not this repo's invention."},"WennerReading":{"properties":{"probe_spacing_m":{"type":"number","exclusiveMinimum":0.0,"title":"Probe Spacing M"},"apparent_resistivity_ohm_m":{"type":"number","exclusiveMinimum":0.0,"title":"Apparent Resistivity Ohm M"}},"type":"object","required":["probe_spacing_m","apparent_resistivity_ohm_m"],"title":"WennerReading"},"WorkingSpaceCondition":{"type":"string","enum":["condition_1","condition_2","condition_3"],"title":"WorkingSpaceCondition","description":"Table 110.26(A)(1)'s Condition column — what's directly opposite the equipment. See\nstandards/electrical/nec_2023_article_110_26_working_space.md for the full paraphrased\ndefinitions."},"circuit_calc_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_repo_ref":{"type":"string","title":"Source Repo Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_repo_ref"],"title":"Provenance"},"controls_calc_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_ref":{"type":"string","title":"Source Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_ref"],"title":"Provenance"},"der_calc_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_ref":{"type":"string","title":"Source Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_ref"],"title":"Provenance"},"field_capture_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_ref":{"type":"string","title":"Source Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_ref"],"title":"Provenance"},"ocalc_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_ref":{"type":"string","title":"Source Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_ref"],"title":"Provenance"},"overhead_calc_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_ref":{"type":"string","title":"Source Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_ref"],"title":"Provenance"},"overhead_pole_model__models__Insulator":{"properties":{"insulator_id":{"type":"string","title":"Insulator Id"},"insulator_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insulator Type"},"crossarm_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crossarm Id"},"attachment_height":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"vertical_offset":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"horizontal_offset":{"anyOf":[{"$ref":"#/components/schemas/MeasuredValue"},{"type":"null"}]},"direction_deg":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Direction Deg"},"spans":{"items":{"$ref":"#/components/schemas/Span"},"type":"array","title":"Spans"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":true,"type":"object","required":["insulator_id"],"title":"Insulator"},"overhead_pole_model__models__SourceRef":{"properties":{"source_system":{"type":"string","title":"Source System"},"source_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Key"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"additionalProperties":true,"type":"object","required":["source_system"],"title":"SourceRef"},"pls_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_ref":{"type":"string","title":"Source Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_ref"],"title":"Provenance"},"prowag_harness__config__regulatory_status__RegulatoryStatus":{"type":"string","enum":["dot-transit-adopted","dot-not-applicable-general-sidewalk","doj-title-ii-not-yet-final","best-practice-consent-decree-standard"],"title":"RegulatoryStatus","description":"String enum so values serialize as the literal strings below (e.g. in Pydantic models /\nMCP tool output), not as \"RegulatoryStatus.DOT_TRANSIT_ADOPTED\"."},"prowag_harness__functions__result__ComplianceCheckResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"standard_cited":{"type":"string","title":"Standard Cited"},"regulatory_status":{"$ref":"#/components/schemas/prowag_harness__config__regulatory_status__RegulatoryStatus"}},"type":"object","required":["compliant","standard_cited","regulatory_status"],"title":"ComplianceCheckResult"},"spida_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_ref":{"type":"string","title":"Source Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_ref"],"title":"Provenance"},"thermal_calc_harness__functions__provenance__Provenance":{"properties":{"method":{"type":"string","title":"Method"},"source_ref":{"type":"string","title":"Source Ref"},"engine_version":{"type":"string","title":"Engine Version"},"computed_at":{"type":"string","format":"date-time","title":"Computed At"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["method","source_ref"],"title":"Provenance"},"ubm_agent_harness__config__electrical__regulatory_status__RegulatoryStatus":{"type":"string","enum":["adopted-as-loaded-edition","adopted-with-local-amendments","prior-edition-adopted","adoption-status-unknown"],"title":"RegulatoryStatus","description":"String enum so values serialize as the literal strings below (e.g. in Pydantic models /\nfuture MCP tool output), not as \"RegulatoryStatus.ADOPTED_AS_LOADED_EDITION\"."},"ubm_agent_harness__functions__electrical__result__ComplianceCheckResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"standard_cited":{"type":"string","title":"Standard Cited"},"regulatory_status":{"$ref":"#/components/schemas/ubm_agent_harness__config__electrical__regulatory_status__RegulatoryStatus"}},"type":"object","required":["compliant","standard_cited","regulatory_status"],"title":"ComplianceCheckResult"},"ugm_agent_harness__config__interconnection__regulatory_status__RegulatoryStatus":{"type":"string","enum":["adopted-as-loaded-edition","adopted-with-local-amendments","prior-edition-adopted","adoption-status-unknown"],"title":"RegulatoryStatus","description":"String enum so values serialize as the literal strings below, not as\n\"RegulatoryStatus.ADOPTED_AS_LOADED_EDITION\"."},"ugm_agent_harness__functions__interconnection__result__ComplianceCheckResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"standard_cited":{"type":"string","title":"Standard Cited"},"regulatory_status":{"$ref":"#/components/schemas/ugm_agent_harness__config__interconnection__regulatory_status__RegulatoryStatus"}},"type":"object","required":["compliant","standard_cited","regulatory_status"],"title":"ComplianceCheckResult"},"usm_agent_harness__config__electric_supply_stations__regulatory_status__RegulatoryStatus":{"type":"string","enum":["adopted-as-loaded-edition","adopted-with-local-amendments","prior-edition-adopted","adoption-status-unknown"],"title":"RegulatoryStatus","description":"String enum so values serialize as the literal strings below, not as\n\"RegulatoryStatus.ADOPTED_AS_LOADED_EDITION\"."},"usm_agent_harness__functions__electric_supply_stations__result__ComplianceCheckResult":{"properties":{"compliant":{"type":"boolean","title":"Compliant"},"violations":{"items":{"type":"string"},"type":"array","title":"Violations"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"standard_cited":{"type":"string","title":"Standard Cited"},"regulatory_status":{"$ref":"#/components/schemas/usm_agent_harness__config__electric_supply_stations__regulatory_status__RegulatoryStatus"}},"type":"object","required":["compliant","standard_cited","regulatory_status"],"title":"ComplianceCheckResult"},"utm_agent_harness__ontology__nodes__Insulator":{"properties":{"node_id":{"type":"string","title":"Node Id"},"provenance":{"anyOf":[{"$ref":"#/components/schemas/utm_agent_harness__ontology__provenance__Provenance"},{"type":"null"}]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"structure_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Structure Id"},"hardware_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hardware Id"},"insulator_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insulator Type"},"string_length_m":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"String Length M"},"unit_count":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Unit Count"}},"additionalProperties":true,"type":"object","required":["node_id"],"title":"Insulator"},"utm_agent_harness__ontology__provenance__Provenance":{"properties":{"source_ref":{"anyOf":[{"$ref":"#/components/schemas/utm_agent_harness__ontology__provenance__SourceRef"},{"type":"null"}]},"harness":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Harness"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"lineage_repo_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lineage Repo Id"},"lineage_object_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lineage Object Id"},"lineage_commit_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lineage Commit Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"additionalProperties":true,"type":"object","title":"Provenance","description":"Where a graph fact came from: raw ingestion, or a harness's analysis pass."},"utm_agent_harness__ontology__provenance__SourceRef":{"properties":{"source_system":{"type":"string","title":"Source System"},"source_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Key"},"source_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Path"}},"additionalProperties":true,"type":"object","required":["source_system"],"title":"SourceRef","description":"Where a fact originally came from — a source system record, a file, a field capture."}}}}