changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": {},
+ "description": "Multi-factor site suitability for one lat/lon: composite score + verdict (+ per-factor breakdown, nearby infra, power cost, fiber on paid) — alongside the DC Hub envelope keys.",
+ "properties": {
+ "_entity": {
+ "description": "Payload class (facility|market|iso_grid|queue_results|deal|report|response); branch on it.",
+ "type": "string"
+ },
+ "_front_door": {
+ "additionalProperties": {},
+ "description": "First-tool hint: plan_query(intent) returns the ordered plan.",
+ "properties": {},
+ "type": "object"
+ },
+ "_return_loop": {
+ "additionalProperties": {},
+ "description": "Next-session delta call (get_changes).",
+ "properties": {},
+ "type": "object"
+ },
+ "citation": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "description": "How to attribute DC Hub: {source, url, license, cite_as, retrieved_at}, or the attribution line as a string."
+ },
+ "composite_score": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "0-100 composite site suitability score (free HEADLINE tier and full tier)"
+ },
+ "fiber": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Fiber read: {connectivity_score, nearest_carrier_km, near_net_bucket, top_carriers[], single_carrier_risk} (full payload)"
+ },
+ "interpretation": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Verdict prose on the full payload"
+ },
+ "limiting_factor": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "factor": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The lowest-scoring factor"
+ },
+ "note": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Why it limits the site"
+ },
+ "of": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Scale maximum (100)"
+ },
+ "score": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Its score"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Single top limiting factor (the lowest sub-score) — always present on the free headline"
+ },
+ "location": {
+ "description": "Echo of the analyzed location (full payload)"
+ },
+ "locked": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Which sections are Pro-locked on the free headline: {per_factor_breakdown, nearby_infrastructure, power_cost, fiber_carriers, site_analysis_report}"
+ },
+ "nearby": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Nearby infrastructure counts: {substations_50km, power_plants_80km, gas_pipelines_50km, facilities_100km, fiber_carriers_in_state, generation_capacity_mw, total_capacity_mw} (full payload)"
+ },
+ "overall_score": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Alias of composite_score on the full payload"
+ },
+ "power_cost": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Power cost read: {industrial_cents_kwh, commercial_cents_kwh, period, basis} (full payload)"
+ },
+ "preview": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Headline preview line (free tier)"
+ },
+ "provenance": {
+ "additionalProperties": {},
+ "description": "Source, method, as_of, verification_counts, license, cite_as; quote it when citing.",
+ "properties": {},
+ "type": "object"
+ },
+ "quota": {
+ "additionalProperties": {},
+ "description": "Caller quota state (remaining calls, tier).",
+ "properties": {},
+ "type": "object"
+ },
+ "scores": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "fiber_connectivity": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "0-100"
+ },
+ "gas_pipeline_access": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "0-100"
+ },
+ "market_conditions": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "0-100"
+ },
+ "power_infrastructure": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "0-100"
+ },
+ "risk_resilience": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "0-100"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Per-factor breakdown (full/paid payload)"
+ },
+ "site_evaluation_handoff": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {},
+ "type": "object"
+ }
+ ],
+ "description": "Follow-up calls [{tool, parameters, why}] when the payload carries coordinates."
+ },
+ "site_headline": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "true when this is the free citable HEADLINE (score + verdict + limiting factor)"
+ },
+ "verdict": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Verdict string, e.g. \"Excellent site\" / BUILD-CAUTION-AVOID read"
+ }
+ },
+ "type": "object"
+}