Skip to main content
Glama

Server Details

Conditions, trip briefs, alerts, permits, roads, hourly, areas, accuracy for WA, OR, BC. No account.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.7% over 18 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target clearly distinct resources (permits, alerts, accuracy, hourly conditions, areas, search). However, get_objective_conditions, get_route_conditions, and get_trip_brief all return forecast/condition data with overlapping scopes, requiring careful reading to select the right one. The descriptions help, but the cluster remains a potential source of confusion.

Naming Consistency5/5

All tool names use consistent snake_case with a predictable verb_noun pattern: get_* for retrievals, list_areas, and search_objectives. The slight plural in get_access_and_permits is a minor deviation but does not break the pattern.

Tool Count5/5

With 9 tools, the set is well within the typical 3–15 range for a focused server. Each tool covers a distinct facet of the forecast/conditions domain, so no tool feels redundant or extraneous.

Completeness4/5

The surface covers search, area listing, objective/route conditions, trip briefs, hourly conditions, permits, alerts, and forecast accuracy, which is comprehensive for an informational server. Minor gaps exist—avalanche danger ratings and some external alerts are explicitly not served—but links to external sources are provided, so agents can work around them.

Available Tools

9 tools
get_access_and_permitsPermits and road accessA
Read-onlyIdempotent
Inspect

Returns the permit entry and road access shown on a route's forecast page for a covered objective: the permit status, fee, notes and official link, and the road conditions for the approach passes, with highway, temperature, restrictions, the road agency named and the time its data was fetched. Road data older than 30 minutes is marked. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPublic objective slug returned by search_objectives.
route_idYesRoute identifier returned by search_objectives. The permit entry resolves at route level.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description still adds real behavioral value by disclosing that road data older than 30 minutes is marked, that a fetch timestamp accompanies the data, and that the content is informational only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb and resource, followed by two short supporting sentences. The enumeration of returned fields is dense but readable; some of it duplicates what the output schema already exposes, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so field-level return values need not be spelled out, and annotations cover the safety profile. The description supplies the remaining essentials an agent needs: scope (covered objective/route), staleness marking, and the informational nature of the data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both params, including the note that the permit entry resolves at route level, so the schema carries the semantics. The description adds only indirect context ('a route's forecast page for a covered objective') and no format or constraint detail beyond the schema; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it returns permit entry (status, fee, notes, official link) and road access/conditions for a route's approach passes. The scope is well defined, but it doesn't distinguish itself from sibling tools like get_route_conditions or get_objective_conditions, which plausibly return overlapping road/condition data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not, or alternative-tool guidance. 'Informational only' is a caveat about the nature of the output, not routing advice, and 'for a covered objective' only hints that some objectives lack data. An agent gets no help choosing between this and get_route_conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_alertsObjective alertsA
Read-onlyIdempotent
Inspect

Returns the NPS park alerts and National Weather Service fire weather alerts displayed for a covered objective, with source attribution and retrieval timestamps. ClimbCast does not carry current USDA Forest Service alerts or closures. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPublic objective slug returned by search_objectives.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: results carry source attribution and retrieval timestamps, coverage excludes USFS alerts/closures, and the output is informational rather than authoritative. That is meaningful disclosure about completeness and freshness, though it stops short of stating update cadence or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the return content, then the coverage exclusion, then the authority caveat. No filler and no repetition of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value detail need not be spelled out, and the description covers the remaining agent-facing unknowns: what sources appear, what is missing, and that each item is timestamped. Only the update cadence of the underlying alerts is left unaddressed, a minor gap for this tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, so the schema already explains that slug is an objective slug returned by search_objectives. The phrase 'for a covered objective' reinforces that the target must be one ClimbCast covers, but adds no syntax, format, or error-condition detail. Baseline 3 applies when the schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (returns park/fire-weather alerts) and pins the scope to a single covered objective, with named sources (NPS, National Weather Service). It also draws an explicit negative boundary — no USDA Forest Service alerts or closures — which is exactly the kind of scope statement that separates it from siblings like get_trip_brief.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the slug comes from search_objectives and the alerts belong to one objective. There is no explicit when-to-use guidance, no statement of when another sibling (e.g. get_trip_brief or get_objective_conditions) would be the better call, and 'Informational only' hints at caution without saying what to do instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_forecast_accuracyForecast accuracyA
Read-onlyIdempotent
Inspect

Returns stored public regional forecast accuracy, including observed-station or model-proxy truth lineage, data sufficiency, and eligibility. Takes either a region_id or an objective slug, which resolves to the accuracy region of the NWAC zone the objective is bound to. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoPublic objective slug returned by search_objectives. It resolves to the accuracy region of the NWAC zone the objective is bound to. Provide exactly one of slug and region_id.
region_idNoPublic accuracy region identifier, for example pnw-olympics. Provide exactly one of region_id and slug.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/non-destructive/closed-world, so the bar is lower; the description adds real context by revealing the data is 'stored' (precomputed, not live) and that truth lineage may be 'observed-station or model-proxy,' which implies variable data quality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the core purpose front-loaded; the lineage/eligibility clause and the resolution rule each carry information. 'Informational only' is a slightly terse trailing qualifier but earns its place as a scope warning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers purpose, key resolution, and the informational-only scope. It omits any note on whether data sufficiency can make the result empty or partial, which an agent might want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already carries the mutually-exclusive 'provide exactly one of slug and region_id' constraint. The description restates the resolution behavior rather than adding format/syntax detail, so the baseline 3 holds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Returns') and resource ('stored public regional forecast accuracy') plus the sub-components it exposes (truth lineage, data sufficiency, eligibility). This clearly separates it from the condition/alert siblings, though it never names an alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the dual-key resolution ('takes either a region_id or an objective slug') and the caveat 'Informational only,' which signals it is not a decision-driving tool. It does not, however, state when to prefer this over get_objective_conditions or get_hourly_conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_hourly_conditionsHourly conditionsA
Read-onlyIdempotent
Inspect

Returns the two-hourly temperature, wind speed, and wind direction shown in the hourly view of the forecast page's weather by elevation grid, for one day in the free forecast window, with local times, ISO timestamps, the time zone, and the chosen elevation. Takes a date from the route's visible days and an optional elevation band of base, mid, or summit. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDay to return, as YYYY-MM-DD, from the days in the free forecast window.
slugYesPublic objective slug returned by search_objectives.
activityNoOptional activity mode for the route forecast. Accepted values are the route's activities entries from search_objectives. When omitted, the route's default visible activity is used.
route_idYesRoute identifier returned by search_objectives.
elevation_bandNoOptional elevation band for the hourly temperature and wind: base, mid, or summit. The forecast page opens on summit, which is the default.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds one genuine constraint, the free forecast window limitation, and reinforces 'Informational only', but otherwise restates return contents and the elevation default already present in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The lead sentence front-loads the return payload and scope, and the second sentence handles the inputs efficiently. It is dense but every clause carries content; the trailing 'Informational only.' fragment is slightly redundant given readOnlyHint but not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-field detail need not be repeated, and annotations cover safety and idempotency. The description supplies the key operative constraints (free forecast window, single day, optional elevation band), leaving only sibling-differentiation guidance as a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already documented in the schema, including the elevation_band enum and its default. The description adds only marginal meaning (e.g. the date must be from visible/free-window days), which justifies the baseline 3 rather than more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource (returns two-hourly temperature, wind speed, wind direction) and pins down the source (weather-by-elevation grid in the forecast page's hourly view) and scope (one day). It is clearly distinct from a generic conditions lookup, though it never explicitly names sibling tools like get_route_conditions or get_objective_conditions to draw the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the input constraints ('a date from the route's visible days', 'one day in the free forecast window'), which tells the agent when a call will succeed. However, there is no explicit when-to-use guidance versus alternatives such as get_route_conditions or get_objective_conditions, and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_objective_conditionsObjective conditionsA
Read-onlyIdempotent
Inspect

Returns public conditions for a covered objective: summit weather, the objective page's route list with grade, type, and round-trip distance, source provenance, and timestamps, in JSON or markdown. Covers up to five days. Daylight and air quality appear for the first day only, and get_trip_brief carries the per-day values the forecast page shows. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPublic objective slug returned by search_objectives.
formatNoText representation; structured data is included in either format.json

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond them: the five-day coverage limit, that daylight and air quality are first-day-only, that source provenance and timestamps are included, and that the tool is informational only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the return contents in the first clause, then layers scope limits and the sibling boundary. It is dense but every sentence carries information; slightly long but no obvious filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, yet the description still covers time coverage, format options, special-case fields, and the alternative tool. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both slug and format (including the enum and default). The description's 'in JSON or markdown' only restates the format parameter and adds no syntax or constraint detail beyond the schema, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Returns) and resource (public conditions for a covered objective) and enumerates exactly what is returned: summit weather, route list with grade/type/distance, provenance, timestamps. It also names the sibling get_trip_brief and clarifies the boundary, so an agent can distinguish it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context (public conditions for a covered objective) and routes the agent to get_trip_brief for per-day values shown on the forecast page. It lacks an explicit 'do not use this when' exclusion, but the alternative routing is stated rather than merely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_route_conditionsRoute conditionsA
Read-onlyIdempotent
Inspect

Returns up to five days of public route conditions, anchored to the route high point, with catalog gain, source provenance, and timestamps. An optional activity input selects one of the route's activities listed by search_objectives. Days can carry the avalanche center, bulletin state and forecast link (danger ratings are not served), forecast uncertainty, the corn harvest window, and rock conditions where the forecast page shows them for the activity, and the document carries the route's permit entry and trailhead road access. With the markdown format, these sections appear in structuredContent only. For what the whole trip looks like, get_trip_brief returns the forecast page sections in one call. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesPublic objective slug returned by search_objectives.
formatNoText representation; structured data is included in either format.json
activityNoOptional activity mode for the route forecast. Accepted values are the route's activities entries from search_objectives. When omitted, the route's default visible activity is used.
route_idYesRoute identifier returned by search_objectives.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld), and the description layers on real behavioral context: danger ratings are not served, markdown output puts sections in structuredContent only, and the tool is informational only. It doesn't discuss rate limits or auth, but the added constraints go well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the routing hint are front-loaded and the closing 'Informational only' is a useful terminal caveat. The middle sentence is a dense, comma-laden run-on, but nearly every clause carries information an agent could act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, output-schema-backed tool the description is close to complete: it states the horizon, the payload, the format caveat, and the alternative. Nothing critical is missing, though it could note whether results are cached or how the anchor point affects coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are already documented, and the description's note that activity 'selects one of the route's activities listed by search_objectives' largely restates the schema's activity description. The format/markdown behavior adds slightly more, but this is the baseline case where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Returns up to five days of public route conditions, anchored to the route high point') and enumerates the exact payload (catalog gain, provenance, timestamps, avalanche center, corn harvest, rock conditions). It also distinguishes itself from get_trip_brief, so an agent can tell them apart without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes the agent to an alternative: 'For what the whole trip looks like, get_trip_brief returns the forecast page sections in one call.' That is a clear when-to-use-other signal, though it stops short of stating when NOT to use this tool or listing prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trip_briefTrip briefA
Read-onlyIdempotent
Inspect

Returns the signed-out forecast page sections for a route in one call, covering up to five days, or one day with the date input: forecast days, daylight, air quality, and agency alerts, each with source provenance and a freshness status. Forecast days can carry the avalanche center, bulletin state and forecast link (danger ratings are not served), forecast uncertainty, the corn harvest window, and rock conditions where the forecast page shows them, and the document carries the route's permit entry and trailhead road access. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional day to return, as YYYY-MM-DD. Must be one of the days in the free forecast window.
slugYesPublic objective slug returned by search_objectives.
includeNoOptional section names to return: forecast, daylight, airQuality, alerts. When omitted, all four are returned.
activityNoOptional activity mode for the route forecast. Accepted values are the route's activities entries from search_objectives. When omitted, the route's default visible activity is used.
route_idYesRoute identifier returned by search_objectives.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: negative capability disclosure ('danger ratings are not served'), conditional field presence ('where the forecast page shows them'), and the provenance/freshness metadata attached to each section.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is well front-loaded with purpose and scope. The second sentence, however, is a dense run-on cataloguing conditional fields ('avalanche center, bulletin state and forecast link... corn harvest window, and rock conditions'), and much of that return-shape detail is redundant given a declared output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't document return values, and it correctly focuses on scope, sections, and provenance. It is nearly complete for an aggregation read tool; the one meaningful gap is the absence of sibling routing, which matters given several closely overlapping read tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning the schema lacks: the temporal default behavior ('covering up to five days, or one day with the date input') clarifies how omitting date changes the result. The include sections are merely restated from the schema, so it does not go beyond that single useful clarification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (the signed-out forecast page sections for a route) and enumerates exactly what it aggregates: forecast days, daylight, air quality, and agency alerts, each with provenance and freshness. That is clear enough to identify the tool, but it never distinguishes itself from overlapping siblings like get_route_conditions, get_alerts, or get_access_and_permits, whose data it explicitly re-serves in bundled form.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'In one call' and the multi-section coverage imply the aggregation use case (fetch several forecast page sections at once rather than calling siblings separately), and 'Informational only' bounds its role. However, there is no explicit when-to-use versus when to prefer get_route_conditions/get_alerts, and no stated prerequisites, so the routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_areasCovered areasA
Read-onlyIdempotent
Inspect

Lists the public coverage areas shown on the coverage directory, with each area's slug, name, state or province code, and visible activities. An area is a fixed geographic definition, not a distance from the caller. Its slug is the optional area input of search_objectives. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine context beyond that: it labels the call 'Informational only' and corrects the likely misreading of 'area' as a radius/distance, which is a real behavioral clarification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with what is returned, then the semantic caveat, then the routing tie-in. No filler and nothing repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the description still names the key fields, so return-shape explanation is not required. For a zero-parameter, read-only listing tool this covers everything an agent needs before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4. The description goes slightly beyond by explaining that the emitted slug is the value accepted by search_objectives' area parameter, giving the output field cross-tool meaning rather than leaving it as an opaque identifier.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Lists the public coverage areas shown on the coverage directory') and enumerates the returned fields (slug, name, state/province code, visible activities). It also disambiguates the domain term against its nearest sibling by tying the slug to search_objectives' optional area input.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clarifies the operating context with 'An area is a fixed geographic definition, not a distance from the caller' and 'Informational only', and points at search_objectives as the consumer of the slugs. It gives clear context but stops short of an explicit when-to-use / when-not-to-use rule against the other siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_objectivesSearch covered objectivesA
Read-onlyIdempotent
Inspect

Searches the public coverage catalog by name or alias, with optional region and activity filters. Coverage follows the current public scope. Region filters include WA, OR, and BC. Results list each objective's slug and route IDs with their activities, which the other tools take as inputs. An optional area input limits results to the objectives the coverage directory lists under that area. Query and area can be combined, and at least one of them is needed. A query that names an area or a reviewed place name lists that area's objectives, marked by matchedBy, after any objectives matched by name. Informational only.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoOptional public area slug from list_areas. Limits results to the objectives the coverage directory lists under that area. At least one of query and area is needed.
limitNoMaximum number of matching objectives.
queryNoObjective name, alias, place name, or area name; matching ignores case and accents. At least one of query and area is needed.
regionNoOptional state or province code or name: WA, Washington, OR, Oregon, BC, British Columbia, or B.C. Matching ignores case.
activityNoOptional visible activity filter.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the description earns credit for adding real behavior: coverage follows the current public scope, results carry slug and route IDs consumed by other tools, matchedBy marks area/place-name matches which are ranked after name matches, and it is informational only. This is substantive disclosure beyond the safety annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, which is good, but several sentences duplicate schema text almost verbatim ('Region filters include WA, OR, and BC', 'An optional area input limits results to the objectives the coverage directory lists under that area'). Those lines do not earn their place against a 100%-covered schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value detail is not required, and the description still usefully notes what results contain (slug, route IDs, activities) and the matchedBy ranking. Combined with full schema coverage and annotations, the definition is complete enough to invoke correctly, with only minor redundancy.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter including region examples, enum values, and the query/area requirement. The description largely restates this (region codes WA/OR/BC, area limiting results), adding little syntax or format meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource ('Searches the public coverage catalog') plus scope qualifiers (name, alias, region, activity). It clearly distinguishes itself from siblings like list_areas and get_objective_conditions by describing the catalog-search role and noting its outputs feed other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the key precondition ('at least one of query and area is needed') and that the two can be combined, and points at list_areas as the source of area slugs. It does not explicitly contrast when to use this versus the sibling get_* tools, so it stops short of a full routing guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updates
    • Addedget_access_and_permits
    • Changedget_alerts1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "nps": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "fetchedAt": {
        -                "type": "string"
        -              },
        -              "hasActiveClosure": {
        -                "type": "boolean"
        -              },
        -              "nonRoadAlerts": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "category": {
        -                      "enum": [
        -                        "Danger",
        -                        "Caution",
        -                        "Information",
        -                        "Park Closure",
        -                        "Road Closure"
        -                      ]
        -                    },
        -                    "description": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "title": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "url": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "category",
        -                    "title",
        -                    "description"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "notice": {
        -                "const": "No protection is claimed in original U.S. Government works"
        -              },
        -              "parkCode": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "roadAlerts": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "category": {
        -                      "enum": [
        -                        "Danger",
        -                        "Caution",
        -                        "Information",
        -                        "Park Closure",
        -                        "Road Closure"
        -                      ]
        -                    },
        -                    "description": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "title": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "url": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "category",
        -                    "title",
        -                    "description"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "source": {
        -                "const": "Source: National Park Service API"
        -              }
        -            },
        -            "required": [
        -              "parkCode",
        -              "hasActiveClosure",
        -              "nonRoadAlerts",
        -              "roadAlerts",
        -              "source",
        -              "fetchedAt",
        -              "notice"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "status": {
        -        "const": "ok"
        -      },
        -      "usfs": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "alerts": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "byline": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "description": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "forestName": {
        -                      "type": "string"
        -                    },
        -                    "source": {
        -                      "enum": [
        -                        "NWS"
        -                      ]
        -                    },
        -                    "title": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "type": {
        -                      "enum": [
        -                        "fire restriction",
        -                        "trail closure",
        -                        "road closure",
        -                        "area closure",
        -                        "other"
        -                      ]
        -                    },
        -                    "url": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "type",
        -                    "title",
        -                    "forestName",
        -                    "description"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "sources": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": "string"
        -                    },
        -                    "forestName": {
        -                      "type": "string"
        -                    },
        -                    "source": {
        -                      "enum": [
        -                        "Source: USDA Forest Service",
        -                        "Source: National Weather Service"
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "forestName",
        -                    "source",
        -                    "fetchedAt"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              }
        -            },
        -            "required": [
        -              "alerts",
        -              "sources"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "objective",
        -      "nps",
        -      "usfs",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "format",
        -                "not_in_window",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "nps": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "fetchedAt": {
        +                "type": "string"
        +              },
        +              "hasActiveClosure": {
        +                "type": "boolean"
        +              },
        +              "nonRoadAlerts": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "category": {
        +                      "enum": [
        +                        "Danger",
        +                        "Caution",
        +                        "Information",
        +                        "Park Closure",
        +                        "Road Closure"
        +                      ]
        +                    },
        +                    "description": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "title": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "url": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "category",
        +                    "title",
        +                    "description"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "notice": {
        +                "const": "No protection is claimed in original U.S. Government works"
        +              },
        +              "parkCode": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "roadAlerts": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "category": {
        +                      "enum": [
        +                        "Danger",
        +                        "Caution",
        +                        "Information",
        +                        "Park Closure",
        +                        "Road Closure"
        +                      ]
        +                    },
        +                    "description": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "title": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "url": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "category",
        +                    "title",
        +                    "description"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "source": {
        +                "const": "Source: National Park Service API"
        +              }
        +            },
        +            "required": [
        +              "parkCode",
        +              "hasActiveClosure",
        +              "nonRoadAlerts",
        +              "roadAlerts",
        +              "source",
        +              "fetchedAt",
        +              "notice"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "status": {
        +        "const": "ok"
        +      },
        +      "usfs": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "alerts": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "byline": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "description": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "forestName": {
        +                      "type": "string"
        +                    },
        +                    "source": {
        +                      "enum": [
        +                        "NWS"
        +                      ]
        +                    },
        +                    "title": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "type": {
        +                      "enum": [
        +                        "fire restriction",
        +                        "trail closure",
        +                        "road closure",
        +                        "area closure",
        +                        "other"
        +                      ]
        +                    },
        +                    "url": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "type",
        +                    "title",
        +                    "forestName",
        +                    "description"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "sources": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": "string"
        +                    },
        +                    "forestName": {
        +                      "type": "string"
        +                    },
        +                    "source": {
        +                      "enum": [
        +                        "Source: USDA Forest Service",
        +                        "Source: National Weather Service"
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "forestName",
        +                    "source",
        +                    "fetchedAt"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              }
        +            },
        +            "required": [
        +              "alerts",
        +              "sources"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "usfsForestPages": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "alertsUrl": {
        +              "type": "string"
        +            },
        +            "forestName": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "forestName",
        +            "alertsUrl"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "objective",
        +      "nps",
        +      "usfs",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "MCP_OUTPUT_INVALID",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_forecast_accuracy1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "computedAt": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "eligible": {
        -        "const": true
        -      },
        -      "precipOccurrence": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "accuracyPct": {
        -                "type": "number"
        -              },
        -              "n": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "accuracyPct",
        -              "n"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "const": "insufficient"
        -          }
        -        ]
        -      },
        -      "provenance": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "replaySource": {
        -                "const": "open-meteo-archive"
        -              },
        -              "truth": {
        -                "const": "ifs-9km"
        -              }
        -            },
        -            "required": [
        -              "truth",
        -              "replaySource"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "replaySource": {
        -                "const": "open-meteo-archive"
        -              },
        -              "station": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "distanceMi": {
        -                    "type": "number"
        -                  },
        -                  "elevDeltaFt": {
        -                    "type": "number"
        -                  },
        -                  "network": {
        -                    "enum": [
        -                      "snotel",
        -                      "bc-asws",
        -                      "synoptic"
        -                    ]
        -                  },
        -                  "stationId": {
        -                    "type": "string"
        -                  },
        -                  "stationName": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "stationId",
        -                  "network",
        -                  "stationName",
        -                  "distanceMi",
        -                  "elevDeltaFt"
        -                ],
        -                "type": "object"
        -              },
        -              "truth": {
        -                "const": "station-obs"
        -              }
        -            },
        -            "required": [
        -              "truth",
        -              "replaySource",
        -              "station"
        -            ],
        -            "type": "object"
        -          }
        -        ]
        -      },
        -      "regionId": {
        -        "type": "string"
        -      },
        -      "temperature": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "biasF": {
        -                "type": "number"
        -              },
        -              "maeF": {
        -                "type": "number"
        -              },
        -              "n": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "maeF",
        -              "biasF",
        -              "n"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "const": "insufficient"
        -          }
        -        ]
        -      },
        -      "windowDays": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "regionId",
        -      "windowDays",
        -      "provenance",
        -      "computedAt",
        -      "disclaimerText",
        -      "eligible",
        -      "temperature",
        -      "precipOccurrence"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "computedAt": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "eligible": {
        -        "const": false
        -      },
        -      "provenance": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "replaySource": {
        -                "const": "open-meteo-archive"
        -              },
        -              "truth": {
        -                "const": "ifs-9km"
        -              }
        -            },
        -            "required": [
        -              "truth",
        -              "replaySource"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "replaySource": {
        -                "const": "open-meteo-archive"
        -              },
        -              "station": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "distanceMi": {
        -                    "type": "number"
        -                  },
        -                  "elevDeltaFt": {
        -                    "type": "number"
        -                  },
        -                  "network": {
        -                    "enum": [
        -                      "snotel",
        -                      "bc-asws",
        -                      "synoptic"
        -                    ]
        -                  },
        -                  "stationId": {
        -                    "type": "string"
        -                  },
        -                  "stationName": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "stationId",
        -                  "network",
        -                  "stationName",
        -                  "distanceMi",
        -                  "elevDeltaFt"
        -                ],
        -                "type": "object"
        -              },
        -              "truth": {
        -                "const": "station-obs"
        -              }
        -            },
        -            "required": [
        -              "truth",
        -              "replaySource",
        -              "station"
        -            ],
        -            "type": "object"
        -          }
        -        ]
        -      },
        -      "reason": {
        -        "enum": [
        -          "no-station-truth",
        -          "insufficient-samples",
        -          "elevation-gap-exceeded",
        -          "stale-station-truth"
        -        ]
        -      },
        -      "regionId": {
        -        "type": "string"
        -      },
        -      "windowDays": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "regionId",
        -      "windowDays",
        -      "provenance",
        -      "computedAt",
        -      "disclaimerText",
        -      "eligible",
        -      "reason"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "knownRegionIds": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText",
        -      "knownRegionIds"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "format",
        -                "not_in_window",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "computedAt": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "eligible": {
        +        "const": true
        +      },
        +      "precipOccurrence": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "accuracyPct": {
        +                "type": "number"
        +              },
        +              "n": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "accuracyPct",
        +              "n"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "const": "insufficient"
        +          }
        +        ]
        +      },
        +      "provenance": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "truth": {
        +                "const": "ifs-9km"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "station": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "distanceMi": {
        +                    "type": "number"
        +                  },
        +                  "elevDeltaFt": {
        +                    "type": "number"
        +                  },
        +                  "network": {
        +                    "enum": [
        +                      "snotel",
        +                      "bc-asws",
        +                      "synoptic"
        +                    ]
        +                  },
        +                  "stationId": {
        +                    "type": "string"
        +                  },
        +                  "stationName": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "stationId",
        +                  "network",
        +                  "stationName",
        +                  "distanceMi",
        +                  "elevDeltaFt"
        +                ],
        +                "type": "object"
        +              },
        +              "truth": {
        +                "const": "station-obs"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource",
        +              "station"
        +            ],
        +            "type": "object"
        +          }
        +        ]
        +      },
        +      "regionId": {
        +        "type": "string"
        +      },
        +      "temperature": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "biasF": {
        +                "type": "number"
        +              },
        +              "maeF": {
        +                "type": "number"
        +              },
        +              "n": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "maeF",
        +              "biasF",
        +              "n"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "const": "insufficient"
        +          }
        +        ]
        +      },
        +      "windowDays": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "regionId",
        +      "windowDays",
        +      "provenance",
        +      "computedAt",
        +      "disclaimerText",
        +      "eligible",
        +      "temperature",
        +      "precipOccurrence"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "computedAt": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "eligible": {
        +        "const": false
        +      },
        +      "provenance": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "truth": {
        +                "const": "ifs-9km"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "station": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "distanceMi": {
        +                    "type": "number"
        +                  },
        +                  "elevDeltaFt": {
        +                    "type": "number"
        +                  },
        +                  "network": {
        +                    "enum": [
        +                      "snotel",
        +                      "bc-asws",
        +                      "synoptic"
        +                    ]
        +                  },
        +                  "stationId": {
        +                    "type": "string"
        +                  },
        +                  "stationName": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "stationId",
        +                  "network",
        +                  "stationName",
        +                  "distanceMi",
        +                  "elevDeltaFt"
        +                ],
        +                "type": "object"
        +              },
        +              "truth": {
        +                "const": "station-obs"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource",
        +              "station"
        +            ],
        +            "type": "object"
        +          }
        +        ]
        +      },
        +      "reason": {
        +        "enum": [
        +          "no-station-truth",
        +          "insufficient-samples",
        +          "elevation-gap-exceeded",
        +          "stale-station-truth"
        +        ]
        +      },
        +      "regionId": {
        +        "type": "string"
        +      },
        +      "windowDays": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "regionId",
        +      "windowDays",
        +      "provenance",
        +      "computedAt",
        +      "disclaimerText",
        +      "eligible",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "knownRegionIds": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText",
        +      "knownRegionIds"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "MCP_OUTPUT_INVALID",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Addedget_hourly_conditions
    • Changedget_objective_conditions1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "accuracyRegionId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "condition": {
        -              "type": "string"
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous"
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "summit"
        -            },
        -            "snowInches": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "windDirection": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "overallRating",
        -            "summitTempLowF",
        -            "summitTempHighF",
        -            "windMaxMph",
        -            "windDirection",
        -            "precipChancePercent",
        -            "provenance",
        -            "referencePoint",
        -            "condition",
        -            "snowInches"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 5,
        -        "prefixItems": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "airQuality": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "aqi": {
        -                    "type": "number"
        -                  },
        -                  "category": {
        -                    "type": "string"
        -                  },
        -                  "scale": {
        -                    "enum": [
        -                      "us_aqi",
        -                      "aqhi"
        -                    ]
        -                  },
        -                  "sourceName": {
        -                    "type": "string"
        -                  },
        -                  "warning": {
        -                    "type": "boolean"
        -                  }
        -                },
        -                "required": [
        -                  "aqi",
        -                  "category",
        -                  "scale",
        -                  "sourceName",
        -                  "warning"
        -                ],
        -                "type": "object"
        -              },
        -              "avalancheBasis": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "centerName": {
        -                    "type": [
        -                      "string",
        -                      "null"
        -                    ]
        -                  },
        -                  "included": {
        -                    "type": "boolean"
        -                  },
        -                  "reason": {
        -                    "enum": [
        -                      "off_season",
        -                      "no_zone",
        -                      "not_yet_issued",
        -                      "expired",
        -                      "unavailable",
        -                      null
        -                    ]
        -                  }
        -                },
        -                "required": [
        -                  "included",
        -                  "reason",
        -                  "centerName"
        -                ],
        -                "type": "object"
        -              },
        -              "condition": {
        -                "type": "string"
        -              },
        -              "date": {
        -                "type": "string"
        -              },
        -              "moonIllumination": {
        -                "type": "number"
        -              },
        -              "moonPhase": {
        -                "enum": [
        -                  "new",
        -                  "waxing_crescent",
        -                  "first_quarter",
        -                  "waxing_gibbous",
        -                  "full",
        -                  "waning_gibbous",
        -                  "last_quarter",
        -                  "waning_crescent"
        -                ]
        -              },
        -              "overallRating": {
        -                "enum": [
        -                  "excellent",
        -                  "good",
        -                  "marginal",
        -                  "poor",
        -                  "dangerous"
        -                ]
        -              },
        -              "precipChancePercent": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "provenance": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "weather": {
        -                    "additionalProperties": false,
        -                    "properties": {
        -                      "fetchedAt": {
        -                        "type": [
        -                          "string",
        -                          "null"
        -                        ]
        -                      },
        -                      "sourceName": {
        -                        "type": "string"
        -                      },
        -                      "url": {
        -                        "type": "string"
        -                      }
        -                    },
        -                    "required": [
        -                      "sourceName"
        -                    ],
        -                    "type": "object"
        -                  }
        -                },
        -                "required": [
        -                  "weather"
        -                ],
        -                "type": "object"
        -              },
        -              "referencePoint": {
        -                "const": "summit"
        -              },
        -              "snowInches": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "summitTempHighF": {
        -                "type": "number"
        -              },
        -              "summitTempLowF": {
        -                "type": "number"
        -              },
        -              "sunrise": {
        -                "type": "string"
        -              },
        -              "sunriseAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "sunset": {
        -                "type": "string"
        -              },
        -              "sunsetAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "windDirection": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "windMaxMph": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "date",
        -              "overallRating",
        -              "summitTempLowF",
        -              "summitTempHighF",
        -              "windMaxMph",
        -              "windDirection",
        -              "precipChancePercent",
        -              "provenance",
        -              "referencePoint",
        -              "condition",
        -              "snowInches",
        -              "sunrise",
        -              "sunset",
        -              "sunriseAt",
        -              "sunsetAt",
        -              "moonPhase",
        -              "moonIllumination"
        -            ],
        -            "type": "object"
        -          }
        -        ],
        -        "type": "array"
        -      },
        -      "disclaimer": {
        -        "type": "string"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "lockedOutlook": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "lockedDayCount": {
        -            "minimum": 1,
        -            "type": "integer"
        -          },
        -          "maxHorizonDays": {
        -            "const": 15
        -          },
        -          "note": {
        -            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        -          },
        -          "throughDate": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "lockedDayCount",
        -          "throughDate",
        -          "maxHorizonDays",
        -          "note"
        -        ],
        -        "type": "object"
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "routes": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "difficulty": {
        -              "type": "string"
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "roundTripDistanceMi": {
        -              "type": "number"
        -            },
        -            "type": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name",
        -            "difficulty",
        -            "type"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "source": {
        -        "const": "ClimbCast"
        -      },
        -      "sourceUrl": {
        -        "type": "string"
        -      },
        -      "sources": {
        -        "items": {
        -          "$ref": "#/$defs/source"
        -        },
        -        "type": "array"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "updatedAt": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "sourceUrl",
        -      "disclaimer",
        -      "objective",
        -      "accuracyRegionId",
        -      "updatedAt",
        -      "sources",
        -      "disclaimerText",
        -      "routes",
        -      "days"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "format",
        -                "not_in_window",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "accuracyRegionId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "condition": {
        +              "type": "string"
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous"
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "summit"
        +            },
        +            "snowInches": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "overallRating",
        +            "summitTempLowF",
        +            "summitTempHighF",
        +            "windMaxMph",
        +            "windDirection",
        +            "precipChancePercent",
        +            "provenance",
        +            "referencePoint",
        +            "condition",
        +            "snowInches"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 5,
        +        "prefixItems": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "airQuality": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "aqi": {
        +                    "type": "number"
        +                  },
        +                  "category": {
        +                    "type": "string"
        +                  },
        +                  "scale": {
        +                    "enum": [
        +                      "us_aqi",
        +                      "aqhi"
        +                    ]
        +                  },
        +                  "sourceName": {
        +                    "type": "string"
        +                  },
        +                  "warning": {
        +                    "type": "boolean"
        +                  }
        +                },
        +                "required": [
        +                  "aqi",
        +                  "category",
        +                  "scale",
        +                  "sourceName",
        +                  "warning"
        +                ],
        +                "type": "object"
        +              },
        +              "avalancheBasis": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "centerName": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "included": {
        +                    "type": "boolean"
        +                  },
        +                  "reason": {
        +                    "enum": [
        +                      "off_season",
        +                      "no_zone",
        +                      "not_yet_issued",
        +                      "expired",
        +                      "unavailable",
        +                      null
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "included",
        +                  "reason",
        +                  "centerName"
        +                ],
        +                "type": "object"
        +              },
        +              "condition": {
        +                "type": "string"
        +              },
        +              "date": {
        +                "type": "string"
        +              },
        +              "moonIllumination": {
        +                "type": "number"
        +              },
        +              "moonPhase": {
        +                "enum": [
        +                  "new",
        +                  "waxing_crescent",
        +                  "first_quarter",
        +                  "waxing_gibbous",
        +                  "full",
        +                  "waning_gibbous",
        +                  "last_quarter",
        +                  "waning_crescent"
        +                ]
        +              },
        +              "overallRating": {
        +                "enum": [
        +                  "excellent",
        +                  "good",
        +                  "marginal",
        +                  "poor",
        +                  "dangerous"
        +                ]
        +              },
        +              "precipChancePercent": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "provenance": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "weather": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "fetchedAt": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "sourceName": {
        +                        "type": "string"
        +                      },
        +                      "url": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "sourceName"
        +                    ],
        +                    "type": "object"
        +                  }
        +                },
        +                "required": [
        +                  "weather"
        +                ],
        +                "type": "object"
        +              },
        +              "referencePoint": {
        +                "const": "summit"
        +              },
        +              "snowInches": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "summitTempHighF": {
        +                "type": "number"
        +              },
        +              "summitTempLowF": {
        +                "type": "number"
        +              },
        +              "sunrise": {
        +                "type": "string"
        +              },
        +              "sunriseAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "sunset": {
        +                "type": "string"
        +              },
        +              "sunsetAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windDirection": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windMaxMph": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "date",
        +              "overallRating",
        +              "summitTempLowF",
        +              "summitTempHighF",
        +              "windMaxMph",
        +              "windDirection",
        +              "precipChancePercent",
        +              "provenance",
        +              "referencePoint",
        +              "condition",
        +              "snowInches",
        +              "sunrise",
        +              "sunset",
        +              "sunriseAt",
        +              "sunsetAt",
        +              "moonPhase",
        +              "moonIllumination"
        +            ],
        +            "type": "object"
        +          }
        +        ],
        +        "type": "array"
        +      },
        +      "disclaimer": {
        +        "type": "string"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "routes": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "difficulty": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "roundTripDistanceMi": {
        +              "type": "number"
        +            },
        +            "type": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "difficulty",
        +            "type"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "source": {
        +        "const": "ClimbCast"
        +      },
        +      "sourceUrl": {
        +        "type": "string"
        +      },
        +      "sources": {
        +        "items": {
        +          "$ref": "#/$defs/source"
        +        },
        +        "type": "array"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "sourceUrl",
        +      "disclaimer",
        +      "objective",
        +      "accuracyRegionId",
        +      "updatedAt",
        +      "sources",
        +      "disclaimerText",
        +      "routes",
        +      "days"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "MCP_OUTPUT_INVALID",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_route_conditions1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "accuracyRegionId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "airQualityTrend": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "backfilledFrom": {
        -            "type": "string"
        -          },
        -          "firstDate": {
        -            "type": "string"
        -          },
        -          "lastDate": {
        -            "type": "string"
        -          },
        -          "latestValue": {
        -            "type": "number"
        -          },
        -          "scale": {
        -            "enum": [
        -              "us_aqi",
        -              "aqhi"
        -            ]
        -          }
        -        },
        -        "required": [
        -          "scale",
        -          "firstDate",
        -          "lastDate",
        -          "latestValue"
        -        ],
        -        "type": "object"
        -      },
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "airQuality": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "aqi": {
        -                  "type": "number"
        -                },
        -                "category": {
        -                  "type": "string"
        -                },
        -                "scale": {
        -                  "enum": [
        -                    "us_aqi",
        -                    "aqhi"
        -                  ]
        -                },
        -                "sourceName": {
        -                  "type": "string"
        -                },
        -                "warning": {
        -                  "type": "boolean"
        -                }
        -              },
        -              "required": [
        -                "aqi",
        -                "category",
        -                "scale",
        -                "sourceName",
        -                "warning"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheDanger": {
        -              "enum": [
        -                "low",
        -                "moderate",
        -                "considerable",
        -                "high",
        -                "extreme",
        -                "no_data"
        -              ]
        -            },
        -            "cornHarvestWindow": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "status": {
        -                      "type": "string"
        -                    },
        -                    "window": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "end": {
        -                              "type": "string"
        -                            },
        -                            "start": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "start",
        -                            "end"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "status",
        -                    "window"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "moonIllumination": {
        -              "type": "number"
        -            },
        -            "moonPhase": {
        -              "enum": [
        -                "new",
        -                "waxing_crescent",
        -                "first_quarter",
        -                "waxing_gibbous",
        -                "full",
        -                "waning_gibbous",
        -                "last_quarter",
        -                "waning_crescent"
        -              ]
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous",
        -                null
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "route-high-point"
        -            },
        -            "snowpackCondition": {
        -              "enum": [
        -                "powder",
        -                "packed_powder",
        -                "wind_crust",
        -                "sun_crust",
        -                "corn",
        -                "ice",
        -                "wet_heavy",
        -                "bare"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "sunrise": {
        -              "type": "string"
        -            },
        -            "sunriseAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "sunset": {
        -              "type": "string"
        -            },
        -            "sunsetAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windAvgMph": {
        -              "type": "number"
        -            },
        -            "windDirection": {
        -              "type": "string"
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "overallRating",
        -            "summitTempLowF",
        -            "summitTempHighF",
        -            "windMaxMph",
        -            "windDirection",
        -            "precipChancePercent",
        -            "provenance",
        -            "sunrise",
        -            "sunset",
        -            "sunriseAt",
        -            "sunsetAt",
        -            "moonPhase",
        -            "moonIllumination",
        -            "snowpackCondition",
        -            "referencePoint",
        -            "windAvgMph"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 5,
        -        "type": "array"
        -      },
        -      "disclaimer": {
        -        "type": "string"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "lockedOutlook": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "lockedDayCount": {
        -            "minimum": 1,
        -            "type": "integer"
        -          },
        -          "maxHorizonDays": {
        -            "const": 15
        -          },
        -          "note": {
        -            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        -          },
        -          "throughDate": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "lockedDayCount",
        -          "throughDate",
        -          "maxHorizonDays",
        -          "note"
        -        ],
        -        "type": "object"
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "route": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "activityMode": {
        -            "enum": [
        -              "mountaineering",
        -              "skimo_splitboard",
        -              "rock_climbing"
        -            ]
        -          },
        -          "catalogGainFt": {
        -            "type": "number"
        -          },
        -          "highPointElevationFt": {
        -            "type": "number"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "supportedActivities": {
        -            "items": {
        -              "enum": [
        -                "mountaineering",
        -                "skimo_splitboard",
        -                "rock_climbing"
        -              ]
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "catalogGainFt",
        -          "activityMode",
        -          "supportedActivities"
        -        ],
        -        "type": "object"
        -      },
        -      "source": {
        -        "const": "ClimbCast"
        -      },
        -      "sourceUrl": {
        -        "type": "string"
        -      },
        -      "sources": {
        -        "items": {
        -          "$ref": "#/$defs/source"
        -        },
        -        "type": "array"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "updatedAt": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "sourceUrl",
        -      "disclaimer",
        -      "objective",
        -      "accuracyRegionId",
        -      "updatedAt",
        -      "sources",
        -      "disclaimerText",
        -      "route",
        -      "days"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "format",
        -                "not_in_window",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "access": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "appliesTo": {
        +            "enum": [
        +              "route",
        +              "objective"
        +            ]
        +          },
        +          "lastReviewed": {
        +            "type": "string"
        +          },
        +          "managingUnit": {
        +            "type": "string"
        +          },
        +          "notes": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "overnightParking": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "details": {
        +                "type": "string"
        +              },
        +              "lastReviewed": {
        +                "type": "string"
        +              },
        +              "officialUrl": {
        +                "type": "string"
        +              },
        +              "overnightAllowed": {
        +                "type": "boolean"
        +              },
        +              "overnightAllowedLabel": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "overnightAllowed",
        +              "overnightAllowedLabel",
        +              "details",
        +              "officialUrl",
        +              "lastReviewed"
        +            ],
        +            "type": "object"
        +          },
        +          "parkingPasses": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "acceptedAlternativeLabels": {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                },
        +                "acceptedAlternatives": {
        +                  "items": {
        +                    "enum": [
        +                      "northwest_forest_pass",
        +                      "discover_pass",
        +                      "sno_park",
        +                      "america_the_beautiful",
        +                      "national_park_entrance",
        +                      "vehicle_day_use",
        +                      "bc_parks_day_use",
        +                      "none",
        +                      "other"
        +                    ]
        +                  },
        +                  "type": "array"
        +                },
        +                "appliesWhen": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "aboveElevationFt": {
        +                      "type": "number"
        +                    },
        +                    "dayUseOnly": {
        +                      "const": true
        +                    },
        +                    "glacierTravel": {
        +                      "type": "boolean"
        +                    },
        +                    "groupSizeAtLeast": {
        +                      "type": "number"
        +                    },
        +                    "note": {
        +                      "type": "string"
        +                    },
        +                    "overnightOnly": {
        +                      "const": true
        +                    },
        +                    "seasonEndMonth": {
        +                      "type": "number"
        +                    },
        +                    "seasonStartMonth": {
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [],
        +                  "type": "object"
        +                },
        +                "fees": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "amount": {
        +                        "type": "number"
        +                      },
        +                      "currency": {
        +                        "enum": [
        +                          "USD",
        +                          "CAD"
        +                        ]
        +                      },
        +                      "note": {
        +                        "type": "string"
        +                      },
        +                      "unit": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "amount",
        +                      "currency",
        +                      "unit"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "lastReviewed": {
        +                  "type": "string"
        +                },
        +                "officialUrl": {
        +                  "type": "string"
        +                },
        +                "pass": {
        +                  "enum": [
        +                    "northwest_forest_pass",
        +                    "discover_pass",
        +                    "sno_park",
        +                    "america_the_beautiful",
        +                    "national_park_entrance",
        +                    "vehicle_day_use",
        +                    "bc_parks_day_use",
        +                    "none",
        +                    "other"
        +                  ]
        +                },
        +                "passLabel": {
        +                  "type": "string"
        +                },
        +                "required": {
        +                  "enum": [
        +                    "yes",
        +                    "no",
        +                    "seasonal",
        +                    "self-issue",
        +                    "conditional"
        +                  ]
        +                },
        +                "requiredLabel": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "pass",
        +                "passLabel",
        +                "required",
        +                "requiredLabel",
        +                "fees",
        +                "officialUrl",
        +                "lastReviewed"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "permits": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "appliesWhen": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "aboveElevationFt": {
        +                      "type": "number"
        +                    },
        +                    "dayUseOnly": {
        +                      "const": true
        +                    },
        +                    "glacierTravel": {
        +                      "type": "boolean"
        +                    },
        +                    "groupSizeAtLeast": {
        +                      "type": "number"
        +                    },
        +                    "note": {
        +                      "type": "string"
        +                    },
        +                    "overnightOnly": {
        +                      "const": true
        +                    },
        +                    "seasonEndMonth": {
        +                      "type": "number"
        +                    },
        +                    "seasonStartMonth": {
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [],
        +                  "type": "object"
        +                },
        +                "feeFreeDaysNote": {
        +                  "type": "string"
        +                },
        +                "fees": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "amount": {
        +                        "type": "number"
        +                      },
        +                      "currency": {
        +                        "enum": [
        +                          "USD",
        +                          "CAD"
        +                        ]
        +                      },
        +                      "note": {
        +                        "type": "string"
        +                      },
        +                      "unit": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "amount",
        +                      "currency",
        +                      "unit"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "issueMethod": {
        +                  "items": {
        +                    "enum": [
        +                      "online_prepay",
        +                      "online_reservation",
        +                      "ranger_station",
        +                      "ticket_window",
        +                      "self_issue_trailhead",
        +                      "lottery",
        +                      "none"
        +                    ]
        +                  },
        +                  "type": "array"
        +                },
        +                "issueMethodLabels": {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                },
        +                "kind": {
        +                  "enum": [
        +                    "climbing",
        +                    "wilderness_overnight",
        +                    "wilderness_day",
        +                    "monument_climbing",
        +                    "timed_entry",
        +                    "cave",
        +                    "other"
        +                  ]
        +                },
        +                "kindLabel": {
        +                  "type": "string"
        +                },
        +                "lastReviewed": {
        +                  "type": "string"
        +                },
        +                "officialUrl": {
        +                  "type": "string"
        +                },
        +                "payUrl": {
        +                  "type": "string"
        +                },
        +                "quota": {
        +                  "type": "string"
        +                },
        +                "required": {
        +                  "enum": [
        +                    "yes",
        +                    "no",
        +                    "seasonal",
        +                    "self-issue",
        +                    "conditional"
        +                  ]
        +                },
        +                "requiredLabel": {
        +                  "type": "string"
        +                },
        +                "validityNote": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "kind",
        +                "kindLabel",
        +                "required",
        +                "requiredLabel",
        +                "fees",
        +                "issueMethod",
        +                "issueMethodLabels",
        +                "officialUrl",
        +                "lastReviewed"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "verifyBeforeTripNote": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "appliesTo",
        +          "permits",
        +          "parkingPasses",
        +          "notes",
        +          "lastReviewed"
        +        ],
        +        "type": "object"
        +      },
        +      "accuracyRegionId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "airQualityTrend": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "backfilledFrom": {
        +            "type": "string"
        +          },
        +          "firstDate": {
        +            "type": "string"
        +          },
        +          "lastDate": {
        +            "type": "string"
        +          },
        +          "latestValue": {
        +            "type": "number"
        +          },
        +          "scale": {
        +            "enum": [
        +              "us_aqi",
        +              "aqhi"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "scale",
        +          "firstDate",
        +          "lastDate",
        +          "latestValue"
        +        ],
        +        "type": "object"
        +      },
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "airQuality": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "aqi": {
        +                  "type": "number"
        +                },
        +                "category": {
        +                  "type": "string"
        +                },
        +                "scale": {
        +                  "enum": [
        +                    "us_aqi",
        +                    "aqhi"
        +                  ]
        +                },
        +                "sourceName": {
        +                  "type": "string"
        +                },
        +                "warning": {
        +                  "type": "boolean"
        +                }
        +              },
        +              "required": [
        +                "aqi",
        +                "category",
        +                "scale",
        +                "sourceName",
        +                "warning"
        +              ],
        +              "type": "object"
        +            },
        +            "avalanche": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "bulletinState": {
        +                  "enum": [
        +                    "no_zone",
        +                    "off_season",
        +                    "no_rating",
        +                    "between_issuances",
        +                    "not_yet_issued",
        +                    "unavailable",
        +                    "active"
        +                  ]
        +                },
        +                "bulletinUrl": {
        +                  "type": "string"
        +                },
        +                "center": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "name": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "name"
        +                  ],
        +                  "type": "object"
        +                },
        +                "isCurrent": {
        +                  "type": "boolean"
        +                }
        +              },
        +              "required": [
        +                "bulletinState",
        +                "isCurrent"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheDanger": {
        +              "enum": [
        +                "low",
        +                "moderate",
        +                "considerable",
        +                "high",
        +                "extreme",
        +                "no_data"
        +              ]
        +            },
        +            "cornHarvestWindow": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "confidence": {
        +                      "enum": [
        +                        "high",
        +                        "medium",
        +                        "low",
        +                        "uncertain"
        +                      ]
        +                    },
        +                    "endAt": {
        +                      "type": "string"
        +                    },
        +                    "reason": {
        +                      "type": "string"
        +                    },
        +                    "refreeze": {
        +                      "enum": [
        +                        "passed",
        +                        "marginal",
        +                        "failed",
        +                        "not_evaluated"
        +                      ]
        +                    },
        +                    "startAt": {
        +                      "type": "string"
        +                    },
        +                    "status": {
        +                      "type": "string"
        +                    },
        +                    "window": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "end": {
        +                              "type": "string"
        +                            },
        +                            "start": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "start",
        +                            "end"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "status",
        +                    "window"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "moonIllumination": {
        +              "type": "number"
        +            },
        +            "moonPhase": {
        +              "enum": [
        +                "new",
        +                "waxing_crescent",
        +                "first_quarter",
        +                "waxing_gibbous",
        +                "full",
        +                "waning_gibbous",
        +                "last_quarter",
        +                "waning_crescent"
        +              ]
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous",
        +                null
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "route-high-point"
        +            },
        +            "rockConditions": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "cragTempF": {
        +                  "type": "number"
        +                },
        +                "humidityPercent": {
        +                  "type": "number"
        +                },
        +                "rockStatus": {
        +                  "enum": [
        +                    "dry",
        +                    "likely_dry",
        +                    "damp",
        +                    "wet",
        +                    "unknown"
        +                  ]
        +                },
        +                "rockStatusDescription": {
        +                  "type": "string"
        +                },
        +                "sendingWindowEnd": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "sendingWindowEndAt": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "sendingWindowNote": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "sendingWindowStart": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "sendingWindowStartAt": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "rockStatus",
        +                "rockStatusDescription",
        +                "cragTempF",
        +                "humidityPercent",
        +                "sendingWindowStart",
        +                "sendingWindowEnd",
        +                "sendingWindowStartAt",
        +                "sendingWindowEndAt",
        +                "sendingWindowNote"
        +              ],
        +              "type": "object"
        +            },
        +            "snowpackCondition": {
        +              "enum": [
        +                "powder",
        +                "packed_powder",
        +                "wind_crust",
        +                "sun_crust",
        +                "corn",
        +                "ice",
        +                "wet_heavy",
        +                "bare"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "sunrise": {
        +              "type": "string"
        +            },
        +            "sunriseAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "sunset": {
        +              "type": "string"
        +            },
        +            "sunsetAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "uncertainty": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "climatology": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "normalMedian": {
        +                      "type": "number"
        +                    },
        +                    "percentile": {
        +                      "type": "number"
        +                    },
        +                    "sampleSize": {
        +                      "type": "number"
        +                    },
        +                    "summary": {
        +                      "type": "string"
        +                    },
        +                    "unit": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "percentile",
        +                    "summary",
        +                    "sampleSize",
        +                    "normalMedian",
        +                    "unit"
        +                  ],
        +                  "type": "object"
        +                },
        +                "climatologyPercentiles": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "normalMedian": {
        +                        "type": "number"
        +                      },
        +                      "percentile": {
        +                        "type": "number"
        +                      },
        +                      "sampleSize": {
        +                        "type": "number"
        +                      },
        +                      "summary": {
        +                        "type": "string"
        +                      },
        +                      "unit": {
        +                        "type": "string"
        +                      },
        +                      "variable": {
        +                        "enum": [
        +                          "summitHighTempF",
        +                          "freezingLevelFt",
        +                          "precipInWetDay"
        +                        ]
        +                      }
        +                    },
        +                    "required": [
        +                      "variable",
        +                      "percentile",
        +                      "summary",
        +                      "sampleSize",
        +                      "normalMedian",
        +                      "unit"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "confidence": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "level": {
        +                      "enum": [
        +                        "high",
        +                        "medium",
        +                        "low"
        +                      ]
        +                    },
        +                    "reason": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "level",
        +                    "reason"
        +                  ],
        +                  "type": "object"
        +                },
        +                "modelSpread": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fields": {
        +                      "items": {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "label": {
        +                            "type": "string"
        +                          },
        +                          "rangeText": {
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "label",
        +                          "rangeText"
        +                        ],
        +                        "type": "object"
        +                      },
        +                      "type": "array"
        +                    },
        +                    "level": {
        +                      "enum": [
        +                        "tight",
        +                        "moderate",
        +                        "wide"
        +                      ]
        +                    },
        +                    "summary": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "level",
        +                    "summary",
        +                    "fields"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [],
        +              "type": "object"
        +            },
        +            "windAvgMph": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": "string"
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "overallRating",
        +            "summitTempLowF",
        +            "summitTempHighF",
        +            "windMaxMph",
        +            "windDirection",
        +            "precipChancePercent",
        +            "provenance",
        +            "sunrise",
        +            "sunset",
        +            "sunriseAt",
        +            "sunsetAt",
        +            "moonPhase",
        +            "moonIllumination",
        +            "snowpackCondition",
        +            "referencePoint",
        +            "windAvgMph"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 5,
        +        "type": "array"
        +      },
        +      "disclaimer": {
        +        "type": "string"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "permit": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "appliesTo": {
        +            "enum": [
        +              "route",
        +              "objective"
        +            ]
        +          },
        +          "fee": {
        +            "type": "string"
        +          },
        +          "notes": {
        +            "type": "string"
        +          },
        +          "required": {
        +            "enum": [
        +              "yes",
        +              "no",
        +              "seasonal",
        +              "self-issue",
        +              "unknown"
        +            ]
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "required",
        +          "notes",
        +          "appliesTo"
        +        ],
        +        "type": "object"
        +      },
        +      "route": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "activityMode": {
        +            "enum": [
        +              "mountaineering",
        +              "skimo_splitboard",
        +              "rock_climbing"
        +            ]
        +          },
        +          "catalogGainFt": {
        +            "type": "number"
        +          },
        +          "highPointElevationFt": {
        +            "type": "number"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "supportedActivities": {
        +            "items": {
        +              "enum": [
        +                "mountaineering",
        +                "skimo_splitboard",
        +                "rock_climbing"
        +              ]
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "catalogGainFt",
        +          "activityMode",
        +          "supportedActivities"
        +        ],
        +        "type": "object"
        +      },
        +      "source": {
        +        "const": "ClimbCast"
        +      },
        +      "sourceUrl": {
        +        "type": "string"
        +      },
        +      "sources": {
        +        "items": {
        +          "$ref": "#/$defs/source"
        +        },
        +        "type": "array"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "trailheadAccess": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "drivingNotes": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "fetchedAt": {
        +            "type": "string"
        +          },
        +          "passes": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "dataFetchedAt": {
        +                  "type": "string"
        +                },
        +                "highway": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "passName": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "restrictedAreas": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "name": {
        +                        "oneOf": [
        +                          {
        +                            "type": "string"
        +                          },
        +                          {
        +                            "additionalProperties": false,
        +                            "properties": {
        +                              "attribution": {
        +                                "type": "string"
        +                              },
        +                              "issuedAt": {
        +                                "type": [
        +                                  "string",
        +                                  "null"
        +                                ]
        +                              },
        +                              "kind": {
        +                                "const": "third_party_quote"
        +                              },
        +                              "text": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "kind",
        +                              "text",
        +                              "attribution",
        +                              "issuedAt"
        +                            ],
        +                            "type": "object"
        +                          }
        +                        ]
        +                      },
        +                      "status": {
        +                        "enum": [
        +                          "open",
        +                          "closed",
        +                          "unknown"
        +                        ]
        +                      }
        +                    },
        +                    "required": [
        +                      "name",
        +                      "status"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "restrictions": {
        +                  "items": {
        +                    "oneOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "attribution": {
        +                            "type": "string"
        +                          },
        +                          "issuedAt": {
        +                            "type": [
        +                              "string",
        +                              "null"
        +                            ]
        +                          },
        +                          "kind": {
        +                            "const": "third_party_quote"
        +                          },
        +                          "text": {
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "kind",
        +                          "text",
        +                          "attribution",
        +                          "issuedAt"
        +                        ],
        +                        "type": "object"
        +                      }
        +                    ]
        +                  },
        +                  "type": "array"
        +                },
        +                "roadCondition": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "source": {
        +                  "enum": [
        +                    "WSDOT",
        +                    "ODOT",
        +                    "DriveBC",
        +                    "Parks Canada"
        +                  ]
        +                },
        +                "sourceUrl": {
        +                  "type": "string"
        +                },
        +                "stale": {
        +                  "type": "boolean"
        +                },
        +                "temperatureF": {
        +                  "type": [
        +                    "number",
        +                    "null"
        +                  ]
        +                },
        +                "upstreamIssuedAt": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "passName",
        +                "highway",
        +                "roadCondition",
        +                "restrictions",
        +                "temperatureF",
        +                "source",
        +                "sourceUrl",
        +                "stale"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "source": {
        +            "type": "string"
        +          },
        +          "winterPermits": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "passName": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "restrictions": {
        +                  "items": {
        +                    "oneOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "attribution": {
        +                            "type": "string"
        +                          },
        +                          "issuedAt": {
        +                            "type": [
        +                              "string",
        +                              "null"
        +                            ]
        +                          },
        +                          "kind": {
        +                            "const": "third_party_quote"
        +                          },
        +                          "text": {
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "kind",
        +                          "text",
        +                          "attribution",
        +                          "issuedAt"
        +                        ],
        +                        "type": "object"
        +                      }
        +                    ]
        +                  },
        +                  "type": "array"
        +                },
        +                "roadCondition": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "source": {
        +                  "const": "Parks Canada Rogers Pass Winter Permit System"
        +                },
        +                "sourceUrl": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "passName",
        +                "roadCondition",
        +                "restrictions",
        +                "source",
        +                "sourceUrl"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "source",
        +          "passes",
        +          "winterPermits",
        +          "drivingNotes",
        +          "fetchedAt"
        +        ],
        +        "type": "object"
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "sourceUrl",
        +      "disclaimer",
        +      "objective",
        +      "accuracyRegionId",
        +      "updatedAt",
        +      "sources",
        +      "disclaimerText",
        +      "route",
        +      "days"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "MCP_OUTPUT_INVALID",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_trip_brief1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "activity": {
        -        "enum": [
        -          "mountaineering",
        -          "skimo_splitboard",
        -          "rock_climbing"
        -        ]
        -      },
        -      "airQualityTrend": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "backfilledFrom": {
        -            "type": "string"
        -          },
        -          "firstDate": {
        -            "type": "string"
        -          },
        -          "lastDate": {
        -            "type": "string"
        -          },
        -          "latestValue": {
        -            "type": "number"
        -          },
        -          "scale": {
        -            "enum": [
        -              "us_aqi",
        -              "aqhi"
        -            ]
        -          }
        -        },
        -        "required": [
        -          "scale",
        -          "firstDate",
        -          "lastDate",
        -          "latestValue"
        -        ],
        -        "type": "object"
        -      },
        -      "alerts": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "nps": {
        -            "oneOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "fetchedAt": {
        -                    "type": "string"
        -                  },
        -                  "hasActiveClosure": {
        -                    "type": "boolean"
        -                  },
        -                  "nonRoadAlerts": {
        -                    "items": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "category": {
        -                          "enum": [
        -                            "Danger",
        -                            "Caution",
        -                            "Information",
        -                            "Park Closure",
        -                            "Road Closure"
        -                          ]
        -                        },
        -                        "description": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        },
        -                        "title": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        },
        -                        "url": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        }
        -                      },
        -                      "required": [
        -                        "category",
        -                        "title",
        -                        "description"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "notice": {
        -                    "const": "No protection is claimed in original U.S. Government works"
        -                  },
        -                  "parkCode": {
        -                    "type": [
        -                      "string",
        -                      "null"
        -                    ]
        -                  },
        -                  "roadAlerts": {
        -                    "items": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "category": {
        -                          "enum": [
        -                            "Danger",
        -                            "Caution",
        -                            "Information",
        -                            "Park Closure",
        -                            "Road Closure"
        -                          ]
        -                        },
        -                        "description": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        },
        -                        "title": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        },
        -                        "url": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        }
        -                      },
        -                      "required": [
        -                        "category",
        -                        "title",
        -                        "description"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "source": {
        -                    "const": "Source: National Park Service API"
        -                  }
        -                },
        -                "required": [
        -                  "parkCode",
        -                  "hasActiveClosure",
        -                  "nonRoadAlerts",
        -                  "roadAlerts",
        -                  "source",
        -                  "fetchedAt",
        -                  "notice"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "usfs": {
        -            "oneOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "alerts": {
        -                    "items": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "byline": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        },
        -                        "description": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        },
        -                        "forestName": {
        -                          "type": "string"
        -                        },
        -                        "source": {
        -                          "enum": [
        -                            "NWS"
        -                          ]
        -                        },
        -                        "title": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        },
        -                        "type": {
        -                          "enum": [
        -                            "fire restriction",
        -                            "trail closure",
        -                            "road closure",
        -                            "area closure",
        -                            "other"
        -                          ]
        -                        },
        -                        "url": {
        -                          "oneOf": [
        -                            {
        -                              "type": "string"
        -                            },
        -                            {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "attribution": {
        -                                  "type": "string"
        -                                },
        -                                "issuedAt": {
        -                                  "type": [
        -                                    "string",
        -                                    "null"
        -                                  ]
        -                                },
        -                                "kind": {
        -                                  "const": "third_party_quote"
        -                                },
        -                                "text": {
        -                                  "type": "string"
        -                                }
        -                              },
        -                              "required": [
        -                                "kind",
        -                                "text",
        -                                "attribution",
        -                                "issuedAt"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          ]
        -                        }
        -                      },
        -                      "required": [
        -                        "type",
        -                        "title",
        -                        "forestName",
        -                        "description"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "type": "array"
        -                  },
        -                  "sources": {
        -                    "items": {
        -                      "additionalProperties": false,
        -                      "properties": {
        -                        "fetchedAt": {
        -                          "type": "string"
        -                        },
        -                        "forestName": {
        -                          "type": "string"
        -                        },
        -                        "source": {
        -                          "enum": [
        -                            "Source: USDA Forest Service",
        -                            "Source: National Weather Service"
        -                          ]
        -                        }
        -                      },
        -                      "required": [
        -                        "forestName",
        -                        "source",
        -                        "fetchedAt"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    "type": "array"
        -                  }
        -                },
        -                "required": [
        -                  "alerts",
        -                  "sources"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          }
        -        },
        -        "required": [
        -          "nps",
        -          "usfs"
        -        ],
        -        "type": "object"
        -      },
        -      "asOf": {
        -        "type": "string"
        -      },
        -      "conditionsUrl": {
        -        "type": "string"
        -      },
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "airQuality": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "aqi": {
        -                  "type": "number"
        -                },
        -                "category": {
        -                  "type": "string"
        -                },
        -                "scale": {
        -                  "enum": [
        -                    "us_aqi",
        -                    "aqhi"
        -                  ]
        -                },
        -                "sourceName": {
        -                  "type": "string"
        -                },
        -                "warning": {
        -                  "type": "boolean"
        -                }
        -              },
        -              "required": [
        -                "aqi",
        -                "category",
        -                "scale",
        -                "sourceName",
        -                "warning"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheDanger": {
        -              "enum": [
        -                "low",
        -                "moderate",
        -                "considerable",
        -                "high",
        -                "extreme",
        -                "no_data"
        -              ]
        -            },
        -            "cornHarvestWindow": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "status": {
        -                      "type": "string"
        -                    },
        -                    "window": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "end": {
        -                              "type": "string"
        -                            },
        -                            "start": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "start",
        -                            "end"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "status",
        -                    "window"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "moonIllumination": {
        -              "type": "number"
        -            },
        -            "moonPhase": {
        -              "enum": [
        -                "new",
        -                "waxing_crescent",
        -                "first_quarter",
        -                "waxing_gibbous",
        -                "full",
        -                "waning_gibbous",
        -                "last_quarter",
        -                "waning_crescent"
        -              ]
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous",
        -                null
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "route-high-point"
        -            },
        -            "snowpackCondition": {
        -              "enum": [
        -                "powder",
        -                "packed_powder",
        -                "wind_crust",
        -                "sun_crust",
        -                "corn",
        -                "ice",
        -                "wet_heavy",
        -                "bare"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "sunrise": {
        -              "type": "string"
        -            },
        -            "sunriseAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "sunset": {
        -              "type": "string"
        -            },
        -            "sunsetAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windAvgMph": {
        -              "type": "number"
        -            },
        -            "windDirection": {
        -              "type": "string"
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "lockedOutlook": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "lockedDayCount": {
        -            "minimum": 1,
        -            "type": "integer"
        -          },
        -          "maxHorizonDays": {
        -            "const": 15
        -          },
        -          "note": {
        -            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        -          },
        -          "throughDate": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "lockedDayCount",
        -          "throughDate",
        -          "maxHorizonDays",
        -          "note"
        -        ],
        -        "type": "object"
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "pageUrl": {
        -        "type": "string"
        -      },
        -      "provenance": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "airQuality": {
        -            "anyOf": [
        -              {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "ageMinutes": {
        -                    "type": [
        -                      "number",
        -                      "null"
        -                    ]
        -                  },
        -                  "fetchedAt": {
        -                    "type": [
        -                      "string",
        -                      "null"
        -                    ]
        -                  },
        -                  "issuedAt": {
        -                    "type": [
        -                      "string",
        -                      "null"
        -                    ]
        -                  },
        -                  "provenanceLine": {
        -                    "type": "string"
        -                  },
        -                  "source": {
        -                    "type": "string"
        -                  },
        -                  "stale": {
        -                    "type": [
        -                      "boolean",
        -                      "null"
        -                    ]
        -                  }
        -                },
        -                "required": [
        -                  "source",
        -                  "fetchedAt",
        -                  "issuedAt",
        -                  "ageMinutes",
        -                  "stale",
        -                  "provenanceLine"
        -                ],
        -                "type": "object"
        -              },
        -              {
        -                "type": "null"
        -              }
        -            ]
        -          },
        -          "alerts": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "nps": {
        -                "anyOf": [
        -                  {
        -                    "additionalProperties": false,
        -                    "properties": {
        -                      "ageMinutes": {
        -                        "type": [
        -                          "number",
        -                          "null"
        -                        ]
        -                      },
        -                      "fetchedAt": {
        -                        "type": [
        -                          "string",
        -                          "null"
        -                        ]
        -                      },
        -                      "issuedAt": {
        -                        "type": [
        -                          "string",
        -                          "null"
        -                        ]
        -                      },
        -                      "provenanceLine": {
        -                        "type": "string"
        -                      },
        -                      "source": {
        -                        "type": "string"
        -                      },
        -                      "stale": {
        -                        "type": [
        -                          "boolean",
        -                          "null"
        -                        ]
        -                      }
        -                    },
        -                    "required": [
        -                      "source",
        -                      "fetchedAt",
        -                      "issuedAt",
        -                      "ageMinutes",
        -                      "stale",
        -                      "provenanceLine"
        -                    ],
        -                    "type": "object"
        -                  },
        -                  {
        -                    "type": "null"
        -                  }
        -                ]
        -              },
        -              "usfs": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "ageMinutes": {
        -                      "type": [
        -                        "number",
        -                        "null"
        -                      ]
        -                    },
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "issuedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "provenanceLine": {
        -                      "type": "string"
        -                    },
        -                    "source": {
        -                      "type": "string"
        -                    },
        -                    "stale": {
        -                      "type": [
        -                        "boolean",
        -                        "null"
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "source",
        -                    "fetchedAt",
        -                    "issuedAt",
        -                    "ageMinutes",
        -                    "stale",
        -                    "provenanceLine"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              }
        -            },
        -            "required": [
        -              "nps",
        -              "usfs"
        -            ],
        -            "type": "object"
        -          },
        -          "daylight": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "ageMinutes": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "fetchedAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "issuedAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "provenanceLine": {
        -                "type": "string"
        -              },
        -              "source": {
        -                "type": "string"
        -              },
        -              "stale": {
        -                "type": [
        -                  "boolean",
        -                  "null"
        -                ]
        -              }
        -            },
        -            "required": [
        -              "source",
        -              "fetchedAt",
        -              "issuedAt",
        -              "ageMinutes",
        -              "stale",
        -              "provenanceLine"
        -            ],
        -            "type": "object"
        -          },
        -          "forecast": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "ageMinutes": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "fetchedAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "issuedAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "provenanceLine": {
        -                "type": "string"
        -              },
        -              "source": {
        -                "type": "string"
        -              },
        -              "stale": {
        -                "type": [
        -                  "boolean",
        -                  "null"
        -                ]
        -              }
        -            },
        -            "required": [
        -              "source",
        -              "fetchedAt",
        -              "issuedAt",
        -              "ageMinutes",
        -              "stale",
        -              "provenanceLine"
        -            ],
        -            "type": "object"
        -          }
        -        },
        -        "required": [],
        -        "type": "object"
        -      },
        -      "route": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "activityMode": {
        -            "enum": [
        -              "mountaineering",
        -              "skimo_splitboard",
        -              "rock_climbing"
        -            ]
        -          },
        -          "catalogGainFt": {
        -            "type": "number"
        -          },
        -          "highPointElevationFt": {
        -            "type": "number"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "supportedActivities": {
        -            "items": {
        -              "enum": [
        -                "mountaineering",
        -                "skimo_splitboard",
        -                "rock_climbing"
        -              ]
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "catalogGainFt",
        -          "activityMode",
        -          "supportedActivities"
        -        ],
        -        "type": "object"
        -      },
        -      "sectionStatus": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "airQuality": {
        -            "enum": [
        -              "ok",
        -              "stale",
        -              "unavailable"
        -            ]
        -          },
        -          "alerts": {
        -            "enum": [
        -              "ok",
        -              "stale",
        -              "unavailable"
        -            ]
        -          },
        -          "daylight": {
        -            "enum": [
        -              "ok",
        -              "stale",
        -              "unavailable"
        -            ]
        -          },
        -          "forecast": {
        -            "enum": [
        -              "ok",
        -              "stale",
        -              "unavailable"
        -            ]
        -          }
        -        },
        -        "required": [],
        -        "type": "object"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "objective",
        -      "route",
        -      "activity",
        -      "asOf",
        -      "pageUrl",
        -      "conditionsUrl",
        -      "sectionStatus",
        -      "provenance",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "format",
        -                "not_in_window",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "access": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "appliesTo": {
        +            "enum": [
        +              "route",
        +              "objective"
        +            ]
        +          },
        +          "lastReviewed": {
        +            "type": "string"
        +          },
        +          "managingUnit": {
        +            "type": "string"
        +          },
        +          "notes": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "overnightParking": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "details": {
        +                "type": "string"
        +              },
        +              "lastReviewed": {
        +                "type": "string"
        +              },
        +              "officialUrl": {
        +                "type": "string"
        +              },
        +              "overnightAllowed": {
        +                "type": "boolean"
        +              },
        +              "overnightAllowedLabel": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "overnightAllowed",
        +              "overnightAllowedLabel",
        +              "details",
        +              "officialUrl",
        +              "lastReviewed"
        +            ],
        +            "type": "object"
        +          },
        +          "parkingPasses": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "acceptedAlternativeLabels": {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                },
        +                "acceptedAlternatives": {
        +                  "items": {
        +                    "enum": [
        +                      "northwest_forest_pass",
        +                      "discover_pass",
        +                      "sno_park",
        +                      "america_the_beautiful",
        +                      "national_park_entrance",
        +                      "vehicle_day_use",
        +                      "bc_parks_day_use",
        +                      "none",
        +                      "other"
        +                    ]
        +                  },
        +                  "type": "array"
        +                },
        +                "appliesWhen": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "aboveElevationFt": {
        +                      "type": "number"
        +                    },
        +                    "dayUseOnly": {
        +                      "const": true
        +                    },
        +                    "glacierTravel": {
        +                      "type": "boolean"
        +                    },
        +                    "groupSizeAtLeast": {
        +                      "type": "number"
        +                    },
        +                    "note": {
        +                      "type": "string"
        +                    },
        +                    "overnightOnly": {
        +                      "const": true
        +                    },
        +                    "seasonEndMonth": {
        +                      "type": "number"
        +                    },
        +                    "seasonStartMonth": {
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [],
        +                  "type": "object"
        +                },
        +                "fees": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "amount": {
        +                        "type": "number"
        +                      },
        +                      "currency": {
        +                        "enum": [
        +                          "USD",
        +                          "CAD"
        +                        ]
        +                      },
        +                      "note": {
        +                        "type": "string"
        +                      },
        +                      "unit": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "amount",
        +                      "currency",
        +                      "unit"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "lastReviewed": {
        +                  "type": "string"
        +                },
        +                "officialUrl": {
        +                  "type": "string"
        +                },
        +                "pass": {
        +                  "enum": [
        +                    "northwest_forest_pass",
        +                    "discover_pass",
        +                    "sno_park",
        +                    "america_the_beautiful",
        +                    "national_park_entrance",
        +                    "vehicle_day_use",
        +                    "bc_parks_day_use",
        +                    "none",
        +                    "other"
        +                  ]
        +                },
        +                "passLabel": {
        +                  "type": "string"
        +                },
        +                "required": {
        +                  "enum": [
        +                    "yes",
        +                    "no",
        +                    "seasonal",
        +                    "self-issue",
        +                    "conditional"
        +                  ]
        +                },
        +                "requiredLabel": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "pass",
        +                "passLabel",
        +                "required",
        +                "requiredLabel",
        +                "fees",
        +                "officialUrl",
        +                "lastReviewed"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "permits": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "appliesWhen": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "aboveElevationFt": {
        +                      "type": "number"
        +                    },
        +                    "dayUseOnly": {
        +                      "const": true
        +                    },
        +                    "glacierTravel": {
        +                      "type": "boolean"
        +                    },
        +                    "groupSizeAtLeast": {
        +                      "type": "number"
        +                    },
        +                    "note": {
        +                      "type": "string"
        +                    },
        +                    "overnightOnly": {
        +                      "const": true
        +                    },
        +                    "seasonEndMonth": {
        +                      "type": "number"
        +                    },
        +                    "seasonStartMonth": {
        +                      "type": "number"
        +                    }
        +                  },
        +                  "required": [],
        +                  "type": "object"
        +                },
        +                "feeFreeDaysNote": {
        +                  "type": "string"
        +                },
        +                "fees": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "amount": {
        +                        "type": "number"
        +                      },
        +                      "currency": {
        +                        "enum": [
        +                          "USD",
        +                          "CAD"
        +                        ]
        +                      },
        +                      "note": {
        +                        "type": "string"
        +                      },
        +                      "unit": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "amount",
        +                      "currency",
        +                      "unit"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "issueMethod": {
        +                  "items": {
        +                    "enum": [
        +                      "online_prepay",
        +                      "online_reservation",
        +                      "ranger_station",
        +                      "ticket_window",
        +                      "self_issue_trailhead",
        +                      "lottery",
        +                      "none"
        +                    ]
        +                  },
        +                  "type": "array"
        +                },
        +                "issueMethodLabels": {
        +                  "items": {
        +                    "type": "string"
        +                  },
        +                  "type": "array"
        +                },
        +                "kind": {
        +                  "enum": [
        +                    "climbing",
        +                    "wilderness_overnight",
        +                    "wilderness_day",
        +                    "monument_climbing",
        +                    "timed_entry",
        +                    "cave",
        +                    "other"
        +                  ]
        +                },
        +                "kindLabel": {
        +                  "type": "string"
        +                },
        +                "lastReviewed": {
        +                  "type": "string"
        +                },
        +                "officialUrl": {
        +                  "type": "string"
        +                },
        +                "payUrl": {
        +                  "type": "string"
        +                },
        +                "quota": {
        +                  "type": "string"
        +                },
        +                "required": {
        +                  "enum": [
        +                    "yes",
        +                    "no",
        +                    "seasonal",
        +                    "self-issue",
        +                    "conditional"
        +                  ]
        +                },
        +                "requiredLabel": {
        +                  "type": "string"
        +                },
        +                "validityNote": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "kind",
        +                "kindLabel",
        +                "required",
        +                "requiredLabel",
        +                "fees",
        +                "issueMethod",
        +                "issueMethodLabels",
        +                "officialUrl",
        +                "lastReviewed"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "verifyBeforeTripNote": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "appliesTo",
        +          "permits",
        +          "parkingPasses",
        +          "notes",
        +          "lastReviewed"
        +        ],
        +        "type": "object"
        +      },
        +      "activity": {
        +        "enum": [
        +          "mountaineering",
        +          "skimo_splitboard",
        +          "rock_climbing"
        +        ]
        +      },
        +      "airQualityTrend": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "backfilledFrom": {
        +            "type": "string"
        +          },
        +          "firstDate": {
        +            "type": "string"
        +          },
        +          "lastDate": {
        +            "type": "string"
        +          },
        +          "latestValue": {
        +            "type": "number"
        +          },
        +          "scale": {
        +            "enum": [
        +              "us_aqi",
        +              "aqhi"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "scale",
        +          "firstDate",
        +          "lastDate",
        +          "latestValue"
        +        ],
        +        "type": "object"
        +      },
        +      "alerts": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "nps": {
        +            "oneOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "fetchedAt": {
        +                    "type": "string"
        +                  },
        +                  "hasActiveClosure": {
        +                    "type": "boolean"
        +                  },
        +                  "nonRoadAlerts": {
        +                    "items": {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "category": {
        +                          "enum": [
        +                            "Danger",
        +                            "Caution",
        +                            "Information",
        +                            "Park Closure",
        +                            "Road Closure"
        +                          ]
        +                        },
        +                        "description": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        },
        +                        "title": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        },
        +                        "url": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        }
        +                      },
        +                      "required": [
        +                        "category",
        +                        "title",
        +                        "description"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "notice": {
        +                    "const": "No protection is claimed in original U.S. Government works"
        +                  },
        +                  "parkCode": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "roadAlerts": {
        +                    "items": {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "category": {
        +                          "enum": [
        +                            "Danger",
        +                            "Caution",
        +                            "Information",
        +                            "Park Closure",
        +                            "Road Closure"
        +                          ]
        +                        },
        +                        "description": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        },
        +                        "title": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        },
        +                        "url": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        }
        +                      },
        +                      "required": [
        +                        "category",
        +                        "title",
        +                        "description"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "source": {
        +                    "const": "Source: National Park Service API"
        +                  }
        +                },
        +                "required": [
        +                  "parkCode",
        +                  "hasActiveClosure",
        +                  "nonRoadAlerts",
        +                  "roadAlerts",
        +                  "source",
        +                  "fetchedAt",
        +                  "notice"
        +                ],
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "usfs": {
        +            "oneOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "alerts": {
        +                    "items": {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "byline": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        },
        +                        "description": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        },
        +                        "forestName": {
        +                          "type": "string"
        +                        },
        +                        "source": {
        +                          "enum": [
        +                            "NWS"
        +                          ]
        +                        },
        +                        "title": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        },
        +                        "type": {
        +                          "enum": [
        +                            "fire restriction",
        +                            "trail closure",
        +                            "road closure",
        +                            "area closure",
        +                            "other"
        +                          ]
        +                        },
        +                        "url": {
        +                          "oneOf": [
        +                            {
        +                              "type": "string"
        +                            },
        +                            {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "attribution": {
        +                                  "type": "string"
        +                                },
        +                                "issuedAt": {
        +                                  "type": [
        +                                    "string",
        +                                    "null"
        +                                  ]
        +                                },
        +                                "kind": {
        +                                  "const": "third_party_quote"
        +                                },
        +                                "text": {
        +                                  "type": "string"
        +                                }
        +                              },
        +                              "required": [
        +                                "kind",
        +                                "text",
        +                                "attribution",
        +                                "issuedAt"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          ]
        +                        }
        +                      },
        +                      "required": [
        +                        "type",
        +                        "title",
        +                        "forestName",
        +                        "description"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  },
        +                  "sources": {
        +                    "items": {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "fetchedAt": {
        +                          "type": "string"
        +                        },
        +                        "forestName": {
        +                          "type": "string"
        +                        },
        +                        "source": {
        +                          "enum": [
        +                            "Source: USDA Forest Service",
        +                            "Source: National Weather Service"
        +                          ]
        +                        }
        +                      },
        +                      "required": [
        +                        "forestName",
        +                        "source",
        +                        "fetchedAt"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    "type": "array"
        +                  }
        +                },
        +                "required": [
        +                  "alerts",
        +                  "sources"
        +                ],
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "usfsForestPages": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "alertsUrl": {
        +                  "type": "string"
        +                },
        +                "forestName": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "forestName",
        +                "alertsUrl"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "nps",
        +          "usfs"
        +        ],
        +        "type": "object"
        +      },
        +      "asOf": {
        +        "type": "string"
        +      },
        +      "conditionsUrl": {
        +        "type": "string"
        +      },
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "airQuality": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "aqi": {
        +                  "type": "number"
        +                },
        +                "category": {
        +                  "type": "string"
        +                },
        +                "scale": {
        +                  "enum": [
        +                    "us_aqi",
        +                    "aqhi"
        +                  ]
        +                },
        +                "sourceName": {
        +                  "type": "string"
        +                },
        +                "warning": {
        +                  "type": "boolean"
        +                }
        +              },
        +              "required": [
        +                "aqi",
        +                "category",
        +                "scale",
        +                "sourceName",
        +                "warning"
        +              ],
        +              "type": "object"
        +            },
        +            "avalanche": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "bulletinState": {
        +                  "enum": [
        +                    "no_zone",
        +                    "off_season",
        +                    "no_rating",
        +                    "between_issuances",
        +                    "not_yet_issued",
        +                    "unavailable",
        +                    "active"
        +                  ]
        +                },
        +                "bulletinUrl": {
        +                  "type": "string"
        +                },
        +                "center": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "name": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "name"
        +                  ],
        +                  "type": "object"
        +                },
        +                "isCurrent": {
        +                  "type": "boolean"
        +                }
        +              },
        +              "required": [
        +                "bulletinState",
        +                "isCurrent"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheDanger": {
        +              "enum": [
        +                "low",
        +                "moderate",
        +                "considerable",
        +                "high",
        +                "extreme",
        +                "no_data"
        +              ]
        +            },
        +            "cornHarvestWindow": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "confidence": {
        +                      "enum": [
        +                        "high",
        +                        "medium",
        +                        "low",
        +                        "uncertain"
        +                      ]
        +                    },
        +                    "endAt": {
        +                      "type": "string"
        +                    },
        +                    "reason": {
        +                      "type": "string"
        +                    },
        +                    "refreeze": {
        +                      "enum": [
        +                        "passed",
        +                        "marginal",
        +                        "failed",
        +                        "not_evaluated"
        +                      ]
        +                    },
        +                    "startAt": {
        +                      "type": "string"
        +                    },
        +                    "status": {
        +                      "type": "string"
        +                    },
        +                    "window": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "end": {
        +                              "type": "string"
        +                            },
        +                            "start": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "start",
        +                            "end"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "status",
        +                    "window"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "moonIllumination": {
        +              "type": "number"
        +            },
        +            "moonPhase": {
        +              "enum": [
        +                "new",
        +                "waxing_crescent",
        +                "first_quarter",
        +                "waxing_gibbous",
        +                "full",
        +                "waning_gibbous",
        +                "last_quarter",
        +                "waning_crescent"
        +              ]
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous",
        +                null
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "route-high-point"
        +            },
        +            "rockConditions": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "cragTempF": {
        +                  "type": "number"
        +                },
        +                "humidityPercent": {
        +                  "type": "number"
        +                },
        +                "rockStatus": {
        +                  "enum": [
        +                    "dry",
        +                    "likely_dry",
        +                    "damp",
        +                    "wet",
        +                    "unknown"
        +                  ]
        +                },
        +                "rockStatusDescription": {
        +                  "type": "string"
        +                },
        +                "sendingWindowEnd": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "sendingWindowEndAt": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "sendingWindowNote": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "sendingWindowStart": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "sendingWindowStartAt": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "rockStatus",
        +                "rockStatusDescription",
        +                "cragTempF",
        +                "humidityPercent",
        +                "sendingWindowStart",
        +                "sendingWindowEnd",
        +                "sendingWindowStartAt",
        +                "sendingWindowEndAt",
        +                "sendingWindowNote"
        +              ],
        +              "type": "object"
        +            },
        +            "snowpackCondition": {
        +              "enum": [
        +                "powder",
        +                "packed_powder",
        +                "wind_crust",
        +                "sun_crust",
        +                "corn",
        +                "ice",
        +                "wet_heavy",
        +                "bare"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "sunrise": {
        +              "type": "string"
        +            },
        +            "sunriseAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "sunset": {
        +              "type": "string"
        +            },
        +            "sunsetAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "uncertainty": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "climatology": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "normalMedian": {
        +                      "type": "number"
        +                    },
        +                    "percentile": {
        +                      "type": "number"
        +                    },
        +                    "sampleSize": {
        +                      "type": "number"
        +                    },
        +                    "summary": {
        +                      "type": "string"
        +                    },
        +                    "unit": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "percentile",
        +                    "summary",
        +                    "sampleSize",
        +                    "normalMedian",
        +                    "unit"
        +                  ],
        +                  "type": "object"
        +                },
        +                "climatologyPercentiles": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "normalMedian": {
        +                        "type": "number"
        +                      },
        +                      "percentile": {
        +                        "type": "number"
        +                      },
        +                      "sampleSize": {
        +                        "type": "number"
        +                      },
        +                      "summary": {
        +                        "type": "string"
        +                      },
        +                      "unit": {
        +                        "type": "string"
        +                      },
        +                      "variable": {
        +                        "enum": [
        +                          "summitHighTempF",
        +                          "freezingLevelFt",
        +                          "precipInWetDay"
        +                        ]
        +                      }
        +                    },
        +                    "required": [
        +                      "variable",
        +                      "percentile",
        +                      "summary",
        +                      "sampleSize",
        +                      "normalMedian",
        +                      "unit"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "confidence": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "level": {
        +                      "enum": [
        +                        "high",
        +                        "medium",
        +                        "low"
        +                      ]
        +                    },
        +                    "reason": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "level",
        +                    "reason"
        +                  ],
        +                  "type": "object"
        +                },
        +                "modelSpread": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fields": {
        +                      "items": {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "label": {
        +                            "type": "string"
        +                          },
        +                          "rangeText": {
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "label",
        +                          "rangeText"
        +                        ],
        +                        "type": "object"
        +                      },
        +                      "type": "array"
        +                    },
        +                    "level": {
        +                      "enum": [
        +                        "tight",
        +                        "moderate",
        +                        "wide"
        +                      ]
        +                    },
        +                    "summary": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "level",
        +                    "summary",
        +                    "fields"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [],
        +              "type": "object"
        +            },
        +            "windAvgMph": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": "string"
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "pageUrl": {
        +        "type": "string"
        +      },
        +      "permit": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "appliesTo": {
        +            "enum": [
        +              "route",
        +              "objective"
        +            ]
        +          },
        +          "fee": {
        +            "type": "string"
        +          },
        +          "notes": {
        +            "type": "string"
        +          },
        +          "required": {
        +            "enum": [
        +              "yes",
        +              "no",
        +              "seasonal",
        +              "self-issue",
        +              "unknown"
        +            ]
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "required",
        +          "notes",
        +          "appliesTo"
        +        ],
        +        "type": "object"
        +      },
        +      "provenance": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "airQuality": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "ageMinutes": {
        +                    "type": [
        +                      "number",
        +                      "null"
        +                    ]
        +                  },
        +                  "fetchedAt": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "issuedAt": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "provenanceLine": {
        +                    "type": "string"
        +                  },
        +                  "source": {
        +                    "type": "string"
        +                  },
        +                  "stale": {
        +                    "type": [
        +                      "boolean",
        +                      "null"
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "source",
        +                  "fetchedAt",
        +                  "issuedAt",
        +                  "ageMinutes",
        +                  "stale",
        +                  "provenanceLine"
        +                ],
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "alerts": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "nps": {
        +                "anyOf": [
        +                  {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "ageMinutes": {
        +                        "type": [
        +                          "number",
        +                          "null"
        +                        ]
        +                      },
        +                      "fetchedAt": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "issuedAt": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "provenanceLine": {
        +                        "type": "string"
        +                      },
        +                      "source": {
        +                        "type": "string"
        +                      },
        +                      "stale": {
        +                        "type": [
        +                          "boolean",
        +                          "null"
        +                        ]
        +                      }
        +                    },
        +                    "required": [
        +                      "source",
        +                      "fetchedAt",
        +                      "issuedAt",
        +                      "ageMinutes",
        +                      "stale",
        +                      "provenanceLine"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "usfs": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "ageMinutes": {
        +                      "type": [
        +                        "number",
        +                        "null"
        +                      ]
        +                    },
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "issuedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "provenanceLine": {
        +                      "type": "string"
        +                    },
        +                    "source": {
        +                      "type": "string"
        +                    },
        +                    "stale": {
        +                      "type": [
        +                        "boolean",
        +                        "null"
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "source",
        +                    "fetchedAt",
        +                    "issuedAt",
        +                    "ageMinutes",
        +                    "stale",
        +                    "provenanceLine"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              }
        +            },
        +            "required": [
        +              "nps",
        +              "usfs"
        +            ],
        +            "type": "object"
        +          },
        +          "daylight": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "ageMinutes": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "fetchedAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "issuedAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "provenanceLine": {
        +                "type": "string"
        +              },
        +              "source": {
        +                "type": "string"
        +              },
        +              "stale": {
        +                "type": [
        +                  "boolean",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "source",
        +              "fetchedAt",
        +              "issuedAt",
        +              "ageMinutes",
        +              "stale",
        +              "provenanceLine"
        +            ],
        +            "type": "object"
        +          },
        +          "forecast": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "ageMinutes": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "fetchedAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "issuedAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "provenanceLine": {
        +                "type": "string"
        +              },
        +              "source": {
        +                "type": "string"
        +              },
        +              "stale": {
        +                "type": [
        +                  "boolean",
        +                  "null"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "source",
        +              "fetchedAt",
        +              "issuedAt",
        +              "ageMinutes",
        +              "stale",
        +              "provenanceLine"
        +            ],
        +            "type": "object"
        +          }
        +        },
        +        "required": [],
        +        "type": "object"
        +      },
        +      "route": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "activityMode": {
        +            "enum": [
        +              "mountaineering",
        +              "skimo_splitboard",
        +              "rock_climbing"
        +            ]
        +          },
        +          "catalogGainFt": {
        +            "type": "number"
        +          },
        +          "highPointElevationFt": {
        +            "type": "number"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "supportedActivities": {
        +            "items": {
        +              "enum": [
        +                "mountaineering",
        +                "skimo_splitboard",
        +                "rock_climbing"
        +              ]
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "catalogGainFt",
        +          "activityMode",
        +          "supportedActivities"
        +        ],
        +        "type": "object"
        +      },
        +      "sectionStatus": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "airQuality": {
        +            "enum": [
        +              "ok",
        +              "stale",
        +              "unavailable"
        +            ]
        +          },
        +          "alerts": {
        +            "enum": [
        +              "ok",
        +              "stale",
        +              "unavailable"
        +            ]
        +          },
        +          "daylight": {
        +            "enum": [
        +              "ok",
        +              "stale",
        +              "unavailable"
        +            ]
        +          },
        +          "forecast": {
        +            "enum": [
        +              "ok",
        +              "stale",
        +              "unavailable"
        +            ]
        +          }
        +        },
        +        "required": [],
        +        "type": "object"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "trailheadAccess": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "drivingNotes": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "fetchedAt": {
        +            "type": "string"
        +          },
        +          "passes": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "dataFetchedAt": {
        +                  "type": "string"
        +                },
        +                "highway": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "passName": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "restrictedAreas": {
        +                  "items": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "name": {
        +                        "oneOf": [
        +                          {
        +                            "type": "string"
        +                          },
        +                          {
        +                            "additionalProperties": false,
        +                            "properties": {
        +                              "attribution": {
        +                                "type": "string"
        +                              },
        +                              "issuedAt": {
        +                                "type": [
        +                                  "string",
        +                                  "null"
        +                                ]
        +                              },
        +                              "kind": {
        +                                "const": "third_party_quote"
        +                              },
        +                              "text": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "kind",
        +                              "text",
        +                              "attribution",
        +                              "issuedAt"
        +                            ],
        +                            "type": "object"
        +                          }
        +                        ]
        +                      },
        +                      "status": {
        +                        "enum": [
        +                          "open",
        +                          "closed",
        +                          "unknown"
        +                        ]
        +                      }
        +                    },
        +                    "required": [
        +                      "name",
        +                      "status"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  "type": "array"
        +                },
        +                "restrictions": {
        +                  "items": {
        +                    "oneOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "attribution": {
        +                            "type": "string"
        +                          },
        +                          "issuedAt": {
        +                            "type": [
        +                              "string",
        +                              "null"
        +                            ]
        +                          },
        +                          "kind": {
        +                            "const": "third_party_quote"
        +                          },
        +                          "text": {
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "kind",
        +                          "text",
        +                          "attribution",
        +                          "issuedAt"
        +                        ],
        +                        "type": "object"
        +                      }
        +                    ]
        +                  },
        +                  "type": "array"
        +                },
        +                "roadCondition": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "source": {
        +                  "enum": [
        +                    "WSDOT",
        +                    "ODOT",
        +                    "DriveBC",
        +                    "Parks Canada"
        +                  ]
        +                },
        +                "sourceUrl": {
        +                  "type": "string"
        +                },
        +                "stale": {
        +                  "type": "boolean"
        +                },
        +                "temperatureF": {
        +                  "type": [
        +                    "number",
        +                    "null"
        +                  ]
        +                },
        +                "upstreamIssuedAt": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "passName",
        +                "highway",
        +                "roadCondition",
        +                "restrictions",
        +                "temperatureF",
        +                "source",
        +                "sourceUrl",
        +                "stale"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "source": {
        +            "type": "string"
        +          },
        +          "winterPermits": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "passName": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "restrictions": {
        +                  "items": {
        +                    "oneOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "attribution": {
        +                            "type": "string"
        +                          },
        +                          "issuedAt": {
        +                            "type": [
        +                              "string",
        +                              "null"
        +                            ]
        +                          },
        +                          "kind": {
        +                            "const": "third_party_quote"
        +                          },
        +                          "text": {
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "kind",
        +                          "text",
        +                          "attribution",
        +                          "issuedAt"
        +                        ],
        +                        "type": "object"
        +                      }
        +                    ]
        +                  },
        +                  "type": "array"
        +                },
        +                "roadCondition": {
        +                  "oneOf": [
        +                    {
        +                      "type": "string"
        +                    },
        +                    {
        +                      "additionalProperties": false,
        +                      "properties": {
        +                        "attribution": {
        +                          "type": "string"
        +                        },
        +                        "issuedAt": {
        +                          "type": [
        +                            "string",
        +                            "null"
        +                          ]
        +                        },
        +                        "kind": {
        +                          "const": "third_party_quote"
        +                        },
        +                        "text": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "kind",
        +                        "text",
        +                        "attribution",
        +                        "issuedAt"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                },
        +                "source": {
        +                  "const": "Parks Canada Rogers Pass Winter Permit System"
        +                },
        +                "sourceUrl": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "passName",
        +                "roadCondition",
        +                "restrictions",
        +                "source",
        +                "sourceUrl"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "source",
        +          "passes",
        +          "winterPermits",
        +          "drivingNotes",
        +          "fetchedAt"
        +        ],
        +        "type": "object"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "objective",
        +      "route",
        +      "activity",
        +      "asOf",
        +      "pageUrl",
        +      "conditionsUrl",
        +      "sectionStatus",
        +      "provenance",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "MCP_OUTPUT_INVALID",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Addedlist_areas
    • Changedsearch_objectives4 fields changed
      • addedInput schema / properties / area
        Added value: +{
        +  "description": "Optional public area slug from list_areas. Limits results to the objectives the coverage directory lists under that area. At least one of query and area is needed.",
        +  "maxLength": 64,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Objective name or alias; matching ignores case and accents."New value: +"Objective name, alias, place name, or area name; matching ignores case and accents. At least one of query and area is needed."
      • removedInput schema / required
        Removed value: -[
        -  "query"
        -]
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "objectives": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "conditions_url": {
        -              "type": "string"
        -            },
        -            "elevation_ft": {
        -              "type": "number"
        -            },
        -            "lat": {
        -              "type": "number"
        -            },
        -            "lon": {
        -              "type": "number"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "region": {
        -              "type": "string"
        -            },
        -            "routes": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "activities": {
        -                    "items": {
        -                      "enum": [
        -                        "mountaineering",
        -                        "skimo_splitboard",
        -                        "rock_climbing"
        -                      ]
        -                    },
        -                    "type": "array"
        -                  },
        -                  "activity": {
        -                    "enum": [
        -                      "mountaineering",
        -                      "skimo_splitboard",
        -                      "rock_climbing"
        -                    ]
        -                  },
        -                  "id": {
        -                    "type": "string"
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "id",
        -                  "name",
        -                  "activity",
        -                  "activities"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name",
        -            "elevation_ft",
        -            "region",
        -            "lat",
        -            "lon",
        -            "routes",
        -            "conditions_url"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "truncated": {
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "objectives",
        -      "truncated",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "format",
        -                "not_in_window",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "objectives": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "conditions_url": {
        +              "type": "string"
        +            },
        +            "elevation_ft": {
        +              "type": "number"
        +            },
        +            "lat": {
        +              "type": "number"
        +            },
        +            "lon": {
        +              "type": "number"
        +            },
        +            "matchedBy": {
        +              "enum": [
        +                "name",
        +                "area",
        +                "alias"
        +              ]
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "region": {
        +              "type": "string"
        +            },
        +            "routes": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "activities": {
        +                    "items": {
        +                      "enum": [
        +                        "mountaineering",
        +                        "skimo_splitboard",
        +                        "rock_climbing"
        +                      ]
        +                    },
        +                    "type": "array"
        +                  },
        +                  "activity": {
        +                    "enum": [
        +                      "mountaineering",
        +                      "skimo_splitboard",
        +                      "rock_climbing"
        +                    ]
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "id",
        +                  "name",
        +                  "activity",
        +                  "activities"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name",
        +            "elevation_ft",
        +            "region",
        +            "lat",
        +            "lon",
        +            "routes",
        +            "conditions_url"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "truncated": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "objectives",
        +      "truncated",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "MCP_OUTPUT_INVALID",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
  2. 6 tool updates
    • Changedget_alerts1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "nps": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "fetchedAt": {
        -                "type": "string"
        -              },
        -              "hasActiveClosure": {
        -                "type": "boolean"
        -              },
        -              "nonRoadAlerts": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "category": {
        -                      "enum": [
        -                        "Danger",
        -                        "Caution",
        -                        "Information",
        -                        "Park Closure",
        -                        "Road Closure"
        -                      ]
        -                    },
        -                    "description": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "title": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "url": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "category",
        -                    "title",
        -                    "description"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "notice": {
        -                "const": "No protection is claimed in original U.S. Government works"
        -              },
        -              "parkCode": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "roadAlerts": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "category": {
        -                      "enum": [
        -                        "Danger",
        -                        "Caution",
        -                        "Information",
        -                        "Park Closure",
        -                        "Road Closure"
        -                      ]
        -                    },
        -                    "description": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "title": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "url": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "category",
        -                    "title",
        -                    "description"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "source": {
        -                "const": "Source: National Park Service API"
        -              }
        -            },
        -            "required": [
        -              "parkCode",
        -              "hasActiveClosure",
        -              "nonRoadAlerts",
        -              "roadAlerts",
        -              "source",
        -              "fetchedAt",
        -              "notice"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "status": {
        -        "const": "ok"
        -      },
        -      "usfs": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "alerts": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "byline": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "description": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "forestName": {
        -                      "type": "string"
        -                    },
        -                    "source": {
        -                      "enum": [
        -                        "NWS"
        -                      ]
        -                    },
        -                    "title": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    },
        -                    "type": {
        -                      "enum": [
        -                        "fire restriction",
        -                        "trail closure",
        -                        "road closure",
        -                        "area closure",
        -                        "other"
        -                      ]
        -                    },
        -                    "url": {
        -                      "oneOf": [
        -                        {
        -                          "type": "string"
        -                        },
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "attribution": {
        -                              "type": "string"
        -                            },
        -                            "issuedAt": {
        -                              "type": [
        -                                "string",
        -                                "null"
        -                              ]
        -                            },
        -                            "kind": {
        -                              "const": "third_party_quote"
        -                            },
        -                            "text": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "kind",
        -                            "text",
        -                            "attribution",
        -                            "issuedAt"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "type",
        -                    "title",
        -                    "forestName",
        -                    "description"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "sources": {
        -                "items": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": "string"
        -                    },
        -                    "forestName": {
        -                      "type": "string"
        -                    },
        -                    "source": {
        -                      "enum": [
        -                        "Source: USDA Forest Service",
        -                        "Source: National Weather Service"
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "forestName",
        -                    "source",
        -                    "fetchedAt"
        -                  ],
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              }
        -            },
        -            "required": [
        -              "alerts",
        -              "sources"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "objective",
        -      "nps",
        -      "usfs",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "nps": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "fetchedAt": {
        +                "type": "string"
        +              },
        +              "hasActiveClosure": {
        +                "type": "boolean"
        +              },
        +              "nonRoadAlerts": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "category": {
        +                      "enum": [
        +                        "Danger",
        +                        "Caution",
        +                        "Information",
        +                        "Park Closure",
        +                        "Road Closure"
        +                      ]
        +                    },
        +                    "description": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "title": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "url": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "category",
        +                    "title",
        +                    "description"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "notice": {
        +                "const": "No protection is claimed in original U.S. Government works"
        +              },
        +              "parkCode": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "roadAlerts": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "category": {
        +                      "enum": [
        +                        "Danger",
        +                        "Caution",
        +                        "Information",
        +                        "Park Closure",
        +                        "Road Closure"
        +                      ]
        +                    },
        +                    "description": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "title": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "url": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "category",
        +                    "title",
        +                    "description"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "source": {
        +                "const": "Source: National Park Service API"
        +              }
        +            },
        +            "required": [
        +              "parkCode",
        +              "hasActiveClosure",
        +              "nonRoadAlerts",
        +              "roadAlerts",
        +              "source",
        +              "fetchedAt",
        +              "notice"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "status": {
        +        "const": "ok"
        +      },
        +      "usfs": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "alerts": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "byline": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "description": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "forestName": {
        +                      "type": "string"
        +                    },
        +                    "source": {
        +                      "enum": [
        +                        "NWS"
        +                      ]
        +                    },
        +                    "title": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    },
        +                    "type": {
        +                      "enum": [
        +                        "fire restriction",
        +                        "trail closure",
        +                        "road closure",
        +                        "area closure",
        +                        "other"
        +                      ]
        +                    },
        +                    "url": {
        +                      "oneOf": [
        +                        {
        +                          "type": "string"
        +                        },
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "attribution": {
        +                              "type": "string"
        +                            },
        +                            "issuedAt": {
        +                              "type": [
        +                                "string",
        +                                "null"
        +                              ]
        +                            },
        +                            "kind": {
        +                              "const": "third_party_quote"
        +                            },
        +                            "text": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "kind",
        +                            "text",
        +                            "attribution",
        +                            "issuedAt"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "type",
        +                    "title",
        +                    "forestName",
        +                    "description"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "sources": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": "string"
        +                    },
        +                    "forestName": {
        +                      "type": "string"
        +                    },
        +                    "source": {
        +                      "enum": [
        +                        "Source: USDA Forest Service",
        +                        "Source: National Weather Service"
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "forestName",
        +                    "source",
        +                    "fetchedAt"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              }
        +            },
        +            "required": [
        +              "alerts",
        +              "sources"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "objective",
        +      "nps",
        +      "usfs",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_forecast_accuracy2 fields changed
      • changedInput schema / properties / slug / description
        Previous value: -"Public objective slug returned by search_objectives. It resolves to the accuracy region containing the objective. Provide exactly one of slug and region_id."New value: +"Public objective slug returned by search_objectives. It resolves to the accuracy region of the NWAC zone the objective is bound to. Provide exactly one of slug and region_id."
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "computedAt": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "eligible": {
        -        "type": "boolean"
        -      },
        -      "precipOccurrence": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "accuracyPct": {
        -                "type": "number"
        -              },
        -              "n": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "accuracyPct",
        -              "n"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "const": "insufficient"
        -          }
        -        ]
        -      },
        -      "provenance": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "replaySource": {
        -                "const": "open-meteo-archive"
        -              },
        -              "truth": {
        -                "const": "ifs-9km"
        -              }
        -            },
        -            "required": [
        -              "truth",
        -              "replaySource"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "replaySource": {
        -                "const": "open-meteo-archive"
        -              },
        -              "station": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "distanceMi": {
        -                    "type": "number"
        -                  },
        -                  "elevDeltaFt": {
        -                    "type": "number"
        -                  },
        -                  "network": {
        -                    "enum": [
        -                      "snotel",
        -                      "bc-asws",
        -                      "synoptic"
        -                    ]
        -                  },
        -                  "stationId": {
        -                    "type": "string"
        -                  },
        -                  "stationName": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "stationId",
        -                  "network",
        -                  "stationName",
        -                  "distanceMi",
        -                  "elevDeltaFt"
        -                ],
        -                "type": "object"
        -              },
        -              "truth": {
        -                "const": "station-obs"
        -              }
        -            },
        -            "required": [
        -              "truth",
        -              "replaySource",
        -              "station"
        -            ],
        -            "type": "object"
        -          }
        -        ]
        -      },
        -      "reason": {
        -        "enum": [
        -          "no-station-truth",
        -          "insufficient-samples",
        -          "elevation-gap-exceeded",
        -          "stale-station-truth"
        -        ]
        -      },
        -      "regionId": {
        -        "type": "string"
        -      },
        -      "sampleCount": {
        -        "type": "number"
        -      },
        -      "temperature": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "biasF": {
        -                "type": "number"
        -              },
        -              "maeF": {
        -                "type": "number"
        -              },
        -              "n": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "maeF",
        -              "biasF",
        -              "n"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "const": "insufficient"
        -          }
        -        ]
        -      },
        -      "windowDays": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "regionId",
        -      "windowDays",
        -      "sampleCount",
        -      "temperature",
        -      "precipOccurrence",
        -      "provenance",
        -      "computedAt",
        -      "eligible",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "knownRegionIds": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText",
        -      "knownRegionIds"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "computedAt": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "eligible": {
        +        "const": true
        +      },
        +      "precipOccurrence": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "accuracyPct": {
        +                "type": "number"
        +              },
        +              "n": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "accuracyPct",
        +              "n"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "const": "insufficient"
        +          }
        +        ]
        +      },
        +      "provenance": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "truth": {
        +                "const": "ifs-9km"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "station": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "distanceMi": {
        +                    "type": "number"
        +                  },
        +                  "elevDeltaFt": {
        +                    "type": "number"
        +                  },
        +                  "network": {
        +                    "enum": [
        +                      "snotel",
        +                      "bc-asws",
        +                      "synoptic"
        +                    ]
        +                  },
        +                  "stationId": {
        +                    "type": "string"
        +                  },
        +                  "stationName": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "stationId",
        +                  "network",
        +                  "stationName",
        +                  "distanceMi",
        +                  "elevDeltaFt"
        +                ],
        +                "type": "object"
        +              },
        +              "truth": {
        +                "const": "station-obs"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource",
        +              "station"
        +            ],
        +            "type": "object"
        +          }
        +        ]
        +      },
        +      "regionId": {
        +        "type": "string"
        +      },
        +      "temperature": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "biasF": {
        +                "type": "number"
        +              },
        +              "maeF": {
        +                "type": "number"
        +              },
        +              "n": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "maeF",
        +              "biasF",
        +              "n"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "const": "insufficient"
        +          }
        +        ]
        +      },
        +      "windowDays": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "regionId",
        +      "windowDays",
        +      "provenance",
        +      "computedAt",
        +      "disclaimerText",
        +      "eligible",
        +      "temperature",
        +      "precipOccurrence"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "computedAt": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "eligible": {
        +        "const": false
        +      },
        +      "provenance": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "truth": {
        +                "const": "ifs-9km"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "station": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "distanceMi": {
        +                    "type": "number"
        +                  },
        +                  "elevDeltaFt": {
        +                    "type": "number"
        +                  },
        +                  "network": {
        +                    "enum": [
        +                      "snotel",
        +                      "bc-asws",
        +                      "synoptic"
        +                    ]
        +                  },
        +                  "stationId": {
        +                    "type": "string"
        +                  },
        +                  "stationName": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "stationId",
        +                  "network",
        +                  "stationName",
        +                  "distanceMi",
        +                  "elevDeltaFt"
        +                ],
        +                "type": "object"
        +              },
        +              "truth": {
        +                "const": "station-obs"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource",
        +              "station"
        +            ],
        +            "type": "object"
        +          }
        +        ]
        +      },
        +      "reason": {
        +        "enum": [
        +          "no-station-truth",
        +          "insufficient-samples",
        +          "elevation-gap-exceeded",
        +          "stale-station-truth"
        +        ]
        +      },
        +      "regionId": {
        +        "type": "string"
        +      },
        +      "windowDays": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "regionId",
        +      "windowDays",
        +      "provenance",
        +      "computedAt",
        +      "disclaimerText",
        +      "eligible",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "knownRegionIds": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText",
        +      "knownRegionIds"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_objective_conditions2 fields changed
      • changedOutput schema / $defs / source / properties / stations / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "$ref": "#/$defs/source"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "name": {
        +          "type": "string"
        +        },
        +        "seasonalStatus": {
        +          "enum": [
        +            "active",
        +            "dormant"
        +          ]
        +        },
        +        "status": {
        +          "enum": [
        +            "fresh",
        +            "stale",
        +            "long_stale",
        +            "down",
        +            null
        +          ]
        +        }
        +      },
        +      "required": [
        +        "name",
        +        "status"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "accuracyRegionId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "condition": {
        -              "type": "string"
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous"
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "reliability": {
        -                      "enum": [
        -                        "primary",
        -                        "secondary",
        -                        "supplementary"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "summit"
        -            },
        -            "snowInches": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "windDirection": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "overallRating",
        -            "summitTempLowF",
        -            "summitTempHighF",
        -            "windMaxMph",
        -            "windDirection",
        -            "precipChancePercent",
        -            "provenance",
        -            "referencePoint",
        -            "condition",
        -            "snowInches"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 5,
        -        "prefixItems": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "airQuality": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "aqi": {
        -                    "type": "number"
        -                  },
        -                  "category": {
        -                    "type": "string"
        -                  },
        -                  "scale": {
        -                    "enum": [
        -                      "us_aqi",
        -                      "aqhi"
        -                    ]
        -                  },
        -                  "sourceName": {
        -                    "type": "string"
        -                  },
        -                  "warning": {
        -                    "type": "boolean"
        -                  }
        -                },
        -                "required": [
        -                  "aqi",
        -                  "category",
        -                  "scale",
        -                  "sourceName",
        -                  "warning"
        -                ],
        -                "type": "object"
        -              },
        -              "avalancheBasis": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "centerName": {
        -                    "type": [
        -                      "string",
        -                      "null"
        -                    ]
        -                  },
        -                  "included": {
        -                    "type": "boolean"
        -                  },
        -                  "reason": {
        -                    "enum": [
        -                      "off_season",
        -                      "no_zone",
        -                      "not_yet_issued",
        -                      "expired",
        -                      "unavailable",
        -                      null
        -                    ]
        -                  }
        -                },
        -                "required": [
        -                  "included",
        -                  "reason",
        -                  "centerName"
        -                ],
        -                "type": "object"
        -              },
        -              "condition": {
        -                "type": "string"
        -              },
        -              "date": {
        -                "type": "string"
        -              },
        -              "moonIllumination": {
        -                "type": "number"
        -              },
        -              "moonPhase": {
        -                "enum": [
        -                  "new",
        -                  "waxing_crescent",
        -                  "first_quarter",
        -                  "waxing_gibbous",
        -                  "full",
        -                  "waning_gibbous",
        -                  "last_quarter",
        -                  "waning_crescent"
        -                ]
        -              },
        -              "overallRating": {
        -                "enum": [
        -                  "excellent",
        -                  "good",
        -                  "marginal",
        -                  "poor",
        -                  "dangerous"
        -                ]
        -              },
        -              "precipChancePercent": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "provenance": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "weather": {
        -                    "additionalProperties": false,
        -                    "properties": {
        -                      "fetchedAt": {
        -                        "type": [
        -                          "string",
        -                          "null"
        -                        ]
        -                      },
        -                      "reliability": {
        -                        "enum": [
        -                          "primary",
        -                          "secondary",
        -                          "supplementary"
        -                        ]
        -                      },
        -                      "sourceName": {
        -                        "type": "string"
        -                      },
        -                      "url": {
        -                        "type": "string"
        -                      }
        -                    },
        -                    "required": [
        -                      "sourceName"
        -                    ],
        -                    "type": "object"
        -                  }
        -                },
        -                "required": [
        -                  "weather"
        -                ],
        -                "type": "object"
        -              },
        -              "referencePoint": {
        -                "const": "summit"
        -              },
        -              "snowInches": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "summitTempHighF": {
        -                "type": "number"
        -              },
        -              "summitTempLowF": {
        -                "type": "number"
        -              },
        -              "sunrise": {
        -                "type": "string"
        -              },
        -              "sunriseAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "sunset": {
        -                "type": "string"
        -              },
        -              "sunsetAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "windDirection": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "windMaxMph": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "date",
        -              "overallRating",
        -              "summitTempLowF",
        -              "summitTempHighF",
        -              "windMaxMph",
        -              "windDirection",
        -              "precipChancePercent",
        -              "provenance",
        -              "referencePoint",
        -              "condition",
        -              "snowInches",
        -              "sunrise",
        -              "sunset",
        -              "sunriseAt",
        -              "sunsetAt",
        -              "moonPhase",
        -              "moonIllumination"
        -            ],
        -            "type": "object"
        -          }
        -        ],
        -        "type": "array"
        -      },
        -      "disclaimer": {
        -        "type": "string"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "lockedOutlook": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "lockedDayCount": {
        -            "minimum": 1,
        -            "type": "integer"
        -          },
        -          "maxHorizonDays": {
        -            "const": 15
        -          },
        -          "note": {
        -            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        -          },
        -          "throughDate": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "lockedDayCount",
        -          "throughDate",
        -          "maxHorizonDays",
        -          "note"
        -        ],
        -        "type": "object"
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "routes": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "difficulty": {
        -              "type": "string"
        -            },
        -            "id": {
        -              "type": "string"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "roundTripDistanceMi": {
        -              "type": "number"
        -            },
        -            "type": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "id",
        -            "name",
        -            "difficulty",
        -            "type"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "source": {
        -        "const": "ClimbCast"
        -      },
        -      "sourceUrl": {
        -        "type": "string"
        -      },
        -      "sources": {
        -        "items": {
        -          "$ref": "#/$defs/source"
        -        },
        -        "type": "array"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "updatedAt": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "sourceUrl",
        -      "disclaimer",
        -      "objective",
        -      "accuracyRegionId",
        -      "updatedAt",
        -      "sources",
        -      "disclaimerText",
        -      "routes",
        -      "days"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "accuracyRegionId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "condition": {
        +              "type": "string"
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous"
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "summit"
        +            },
        +            "snowInches": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "overallRating",
        +            "summitTempLowF",
        +            "summitTempHighF",
        +            "windMaxMph",
        +            "windDirection",
        +            "precipChancePercent",
        +            "provenance",
        +            "referencePoint",
        +            "condition",
        +            "snowInches"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 5,
        +        "prefixItems": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "airQuality": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "aqi": {
        +                    "type": "number"
        +                  },
        +                  "category": {
        +                    "type": "string"
        +                  },
        +                  "scale": {
        +                    "enum": [
        +                      "us_aqi",
        +                      "aqhi"
        +                    ]
        +                  },
        +                  "sourceName": {
        +                    "type": "string"
        +                  },
        +                  "warning": {
        +                    "type": "boolean"
        +                  }
        +                },
        +                "required": [
        +                  "aqi",
        +                  "category",
        +                  "scale",
        +                  "sourceName",
        +                  "warning"
        +                ],
        +                "type": "object"
        +              },
        +              "avalancheBasis": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "centerName": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "included": {
        +                    "type": "boolean"
        +                  },
        +                  "reason": {
        +                    "enum": [
        +                      "off_season",
        +                      "no_zone",
        +                      "not_yet_issued",
        +                      "expired",
        +                      "unavailable",
        +                      null
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "included",
        +                  "reason",
        +                  "centerName"
        +                ],
        +                "type": "object"
        +              },
        +              "condition": {
        +                "type": "string"
        +              },
        +              "date": {
        +                "type": "string"
        +              },
        +              "moonIllumination": {
        +                "type": "number"
        +              },
        +              "moonPhase": {
        +                "enum": [
        +                  "new",
        +                  "waxing_crescent",
        +                  "first_quarter",
        +                  "waxing_gibbous",
        +                  "full",
        +                  "waning_gibbous",
        +                  "last_quarter",
        +                  "waning_crescent"
        +                ]
        +              },
        +              "overallRating": {
        +                "enum": [
        +                  "excellent",
        +                  "good",
        +                  "marginal",
        +                  "poor",
        +                  "dangerous"
        +                ]
        +              },
        +              "precipChancePercent": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "provenance": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "weather": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "fetchedAt": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "sourceName": {
        +                        "type": "string"
        +                      },
        +                      "url": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "sourceName"
        +                    ],
        +                    "type": "object"
        +                  }
        +                },
        +                "required": [
        +                  "weather"
        +                ],
        +                "type": "object"
        +              },
        +              "referencePoint": {
        +                "const": "summit"
        +              },
        +              "snowInches": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "summitTempHighF": {
        +                "type": "number"
        +              },
        +              "summitTempLowF": {
        +                "type": "number"
        +              },
        +              "sunrise": {
        +                "type": "string"
        +              },
        +              "sunriseAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "sunset": {
        +                "type": "string"
        +              },
        +              "sunsetAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windDirection": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windMaxMph": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "date",
        +              "overallRating",
        +              "summitTempLowF",
        +              "summitTempHighF",
        +              "windMaxMph",
        +              "windDirection",
        +              "precipChancePercent",
        +              "provenance",
        +              "referencePoint",
        +              "condition",
        +              "snowInches",
        +              "sunrise",
        +              "sunset",
        +              "sunriseAt",
        +              "sunsetAt",
        +              "moonPhase",
        +              "moonIllumination"
        +            ],
        +            "type": "object"
        +          }
        +        ],
        +        "type": "array"
        +      },
        +      "disclaimer": {
        +        "type": "string"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "routes": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "difficulty": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "roundTripDistanceMi": {
        +              "type": "number"
        +            },
        +            "type": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "difficulty",
        +            "type"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "source": {
        +        "const": "ClimbCast"
        +      },
        +      "sourceUrl": {
        +        "type": "string"
        +      },
        +      "sources": {
        +        "items": {
        +          "$ref": "#/$defs/source"
        +        },
        +        "type": "array"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "sourceUrl",
        +      "disclaimer",
        +      "objective",
        +      "accuracyRegionId",
        +      "updatedAt",
        +      "sources",
        +      "disclaimerText",
        +      "routes",
        +      "days"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_route_conditions2 fields changed
      • changedOutput schema / $defs / source / properties / stations / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "$ref": "#/$defs/source"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "name": {
        +          "type": "string"
        +        },
        +        "seasonalStatus": {
        +          "enum": [
        +            "active",
        +            "dormant"
        +          ]
        +        },
        +        "status": {
        +          "enum": [
        +            "fresh",
        +            "stale",
        +            "long_stale",
        +            "down",
        +            null
        +          ]
        +        }
        +      },
        +      "required": [
        +        "name",
        +        "status"
        +      ],
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "accuracyRegionId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "airQualityTrend": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "backfilledFrom": {
        -            "type": "string"
        -          },
        -          "firstDate": {
        -            "type": "string"
        -          },
        -          "lastDate": {
        -            "type": "string"
        -          },
        -          "latestValue": {
        -            "type": "number"
        -          },
        -          "scale": {
        -            "enum": [
        -              "us_aqi",
        -              "aqhi"
        -            ]
        -          }
        -        },
        -        "required": [
        -          "scale",
        -          "firstDate",
        -          "lastDate",
        -          "latestValue"
        -        ],
        -        "type": "object"
        -      },
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "airQuality": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "aqi": {
        -                  "type": "number"
        -                },
        -                "category": {
        -                  "type": "string"
        -                },
        -                "scale": {
        -                  "enum": [
        -                    "us_aqi",
        -                    "aqhi"
        -                  ]
        -                },
        -                "sourceName": {
        -                  "type": "string"
        -                },
        -                "warning": {
        -                  "type": "boolean"
        -                }
        -              },
        -              "required": [
        -                "aqi",
        -                "category",
        -                "scale",
        -                "sourceName",
        -                "warning"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheDanger": {
        -              "enum": [
        -                "low",
        -                "moderate",
        -                "considerable",
        -                "high",
        -                "extreme",
        -                "no_data"
        -              ]
        -            },
        -            "cornHarvestWindow": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "status": {
        -                      "type": "string"
        -                    },
        -                    "window": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "end": {
        -                              "type": "string"
        -                            },
        -                            "start": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "start",
        -                            "end"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "status",
        -                    "window"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "moonIllumination": {
        -              "type": "number"
        -            },
        -            "moonPhase": {
        -              "enum": [
        -                "new",
        -                "waxing_crescent",
        -                "first_quarter",
        -                "waxing_gibbous",
        -                "full",
        -                "waning_gibbous",
        -                "last_quarter",
        -                "waning_crescent"
        -              ]
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous",
        -                null
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "reliability": {
        -                      "enum": [
        -                        "primary",
        -                        "secondary",
        -                        "supplementary"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "route-high-point"
        -            },
        -            "snowpackCondition": {
        -              "enum": [
        -                "powder",
        -                "packed_powder",
        -                "wind_crust",
        -                "sun_crust",
        -                "corn",
        -                "ice",
        -                "wet_heavy",
        -                "bare"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "sunrise": {
        -              "type": "string"
        -            },
        -            "sunriseAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "sunset": {
        -              "type": "string"
        -            },
        -            "sunsetAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windAvgMph": {
        -              "type": "number"
        -            },
        -            "windDirection": {
        -              "type": "string"
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "overallRating",
        -            "summitTempLowF",
        -            "summitTempHighF",
        -            "windMaxMph",
        -            "windDirection",
        -            "precipChancePercent",
        -            "provenance",
        -            "sunrise",
        -            "sunset",
        -            "sunriseAt",
        -            "sunsetAt",
        -            "moonPhase",
        -            "moonIllumination",
        -            "snowpackCondition",
        -            "referencePoint",
        -            "windAvgMph"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 5,
        -        "type": "array"
        -      },
        -      "disclaimer": {
        -        "type": "string"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "lockedOutlook": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "lockedDayCount": {
        -            "minimum": 1,
        -            "type": "integer"
        -          },
        -          "maxHorizonDays": {
        -            "const": 15
        -          },
        -          "note": {
        -            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        -          },
        -          "throughDate": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "lockedDayCount",
        -          "throughDate",
        -          "maxHorizonDays",
        -          "note"
        -        ],
        -        "type": "object"
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "route": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "activityMode": {
        -            "enum": [
        -              "mountaineering",
        -              "skimo_splitboard",
        -              "rock_climbing",
        -              "trail_running",
        -              "mountain_biking",
        -              "snowmobiling",
        -              "ice_climbing"
        -            ]
        -          },
        -          "aspect": {
        -            "type": "string"
        -          },
        -          "catalogGainFt": {
        -            "type": "number"
        -          },
        -          "highPointElevationFt": {
        -            "type": "number"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "supportedActivities": {
        -            "items": {
        -              "enum": [
        -                "mountaineering",
        -                "skimo_splitboard",
        -                "rock_climbing",
        -                "trail_running",
        -                "mountain_biking",
        -                "snowmobiling",
        -                "ice_climbing"
        -              ]
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "catalogGainFt",
        -          "activityMode",
        -          "supportedActivities"
        -        ],
        -        "type": "object"
        -      },
        -      "source": {
        -        "const": "ClimbCast"
        -      },
        -      "sourceUrl": {
        -        "type": "string"
        -      },
        -      "sources": {
        -        "items": {
        -          "$ref": "#/$defs/source"
        -        },
        -        "type": "array"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "updatedAt": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "sourceUrl",
        -      "disclaimer",
        -      "objective",
        -      "accuracyRegionId",
        -      "updatedAt",
        -      "sources",
        -      "disclaimerText",
        -      "route",
        -      "days"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "accuracyRegionId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "airQualityTrend": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "backfilledFrom": {
        +            "type": "string"
        +          },
        +          "firstDate": {
        +            "type": "string"
        +          },
        +          "lastDate": {
        +            "type": "string"
        +          },
        +          "latestValue": {
        +            "type": "number"
        +          },
        +          "scale": {
        +            "enum": [
        +              "us_aqi",
        +              "aqhi"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "scale",
        +          "firstDate",
        +          "lastDate",
        +          "latestValue"
        +        ],
        +        "type": "object"
        +      },
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "airQuality": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "aqi": {
        +                  "type": "number"
        +                },
        +                "category": {
        +                  "type": "string"
        +                },
        +                "scale": {
        +                  "enum": [
        +                    "us_aqi",
        +                    "aqhi"
        +                  ]
        +                },
        +                "sourceName": {
        +                  "type": "string"
        +                },
        +                "warning": {
        +                  "type": "boolean"
        +                }
        +              },
        +              "required": [
        +                "aqi",
        +                "category",
        +                "scale",
        +                "sourceName",
        +                "warning"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheDanger": {
        +              "enum": [
        +                "low",
        +                "moderate",
        +                "considerable",
        +                "high",
        +                "extreme",
        +                "no_data"
        +              ]
        +            },
        +            "cornHarvestWindow": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "status": {
        +                      "type": "string"
        +                    },
        +                    "window": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "end": {
        +                              "type": "string"
        +                            },
        +                            "start": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "start",
        +                            "end"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "status",
        +                    "window"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "moonIllumination": {
        +              "type": "number"
        +            },
        +            "moonPhase": {
        +              "enum": [
        +                "new",
        +                "waxing_crescent",
        +                "first_quarter",
        +                "waxing_gibbous",
        +                "full",
        +                "waning_gibbous",
        +                "last_quarter",
        +                "waning_crescent"
        +              ]
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous",
        +                null
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "route-high-point"
        +            },
        +            "snowpackCondition": {
        +              "enum": [
        +                "powder",
        +                "packed_powder",
        +                "wind_crust",
        +                "sun_crust",
        +                "corn",
        +                "ice",
        +                "wet_heavy",
        +                "bare"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "sunrise": {
        +              "type": "string"
        +            },
        +            "sunriseAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "sunset": {
        +              "type": "string"
        +            },
        +            "sunsetAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "windAvgMph": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": "string"
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "overallRating",
        +            "summitTempLowF",
        +            "summitTempHighF",
        +            "windMaxMph",
        +            "windDirection",
        +            "precipChancePercent",
        +            "provenance",
        +            "sunrise",
        +            "sunset",
        +            "sunriseAt",
        +            "sunsetAt",
        +            "moonPhase",
        +            "moonIllumination",
        +            "snowpackCondition",
        +            "referencePoint",
        +            "windAvgMph"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 5,
        +        "type": "array"
        +      },
        +      "disclaimer": {
        +        "type": "string"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "route": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "activityMode": {
        +            "enum": [
        +              "mountaineering",
        +              "skimo_splitboard",
        +              "rock_climbing"
        +            ]
        +          },
        +          "catalogGainFt": {
        +            "type": "number"
        +          },
        +          "highPointElevationFt": {
        +            "type": "number"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "supportedActivities": {
        +            "items": {
        +              "enum": [
        +                "mountaineering",
        +                "skimo_splitboard",
        +                "rock_climbing"
        +              ]
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "catalogGainFt",
        +          "activityMode",
        +          "supportedActivities"
        +        ],
        +        "type": "object"
        +      },
        +      "source": {
        +        "const": "ClimbCast"
        +      },
        +      "sourceUrl": {
        +        "type": "string"
        +      },
        +      "sources": {
        +        "items": {
        +          "$ref": "#/$defs/source"
        +        },
        +        "type": "array"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "sourceUrl",
        +      "disclaimer",
        +      "objective",
        +      "accuracyRegionId",
        +      "updatedAt",
        +      "sources",
        +      "disclaimerText",
        +      "route",
        +      "days"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Addedget_trip_brief
    • Changedsearch_objectives1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "objectives": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "conditions_url": {
        -              "type": "string"
        -            },
        -            "elevation_ft": {
        -              "type": "number"
        -            },
        -            "lat": {
        -              "type": "number"
        -            },
        -            "lon": {
        -              "type": "number"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "region": {
        -              "type": "string"
        -            },
        -            "routes": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "activities": {
        -                    "items": {
        -                      "enum": [
        -                        "mountaineering",
        -                        "skimo_splitboard",
        -                        "rock_climbing"
        -                      ]
        -                    },
        -                    "type": "array"
        -                  },
        -                  "activity": {
        -                    "enum": [
        -                      "mountaineering",
        -                      "skimo_splitboard",
        -                      "rock_climbing"
        -                    ]
        -                  },
        -                  "id": {
        -                    "type": "string"
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "id",
        -                  "name",
        -                  "activity",
        -                  "activities"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name",
        -            "elevation_ft",
        -            "region",
        -            "lat",
        -            "lon",
        -            "routes",
        -            "conditions_url"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "truncated": {
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "objectives",
        -      "truncated",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "objectives": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "conditions_url": {
        +              "type": "string"
        +            },
        +            "elevation_ft": {
        +              "type": "number"
        +            },
        +            "lat": {
        +              "type": "number"
        +            },
        +            "lon": {
        +              "type": "number"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "region": {
        +              "type": "string"
        +            },
        +            "routes": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "activities": {
        +                    "items": {
        +                      "enum": [
        +                        "mountaineering",
        +                        "skimo_splitboard",
        +                        "rock_climbing"
        +                      ]
        +                    },
        +                    "type": "array"
        +                  },
        +                  "activity": {
        +                    "enum": [
        +                      "mountaineering",
        +                      "skimo_splitboard",
        +                      "rock_climbing"
        +                    ]
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "id",
        +                  "name",
        +                  "activity",
        +                  "activities"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name",
        +            "elevation_ft",
        +            "region",
        +            "lat",
        +            "lon",
        +            "routes",
        +            "conditions_url"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "truncated": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "objectives",
        +      "truncated",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "format",
        +                "not_in_window",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
  3. 4 tool updates
    • Changedget_forecast_accuracy4 fields changed
      • changedInput schema / properties / region_id / description
        Previous value: -"Public accuracy region identifier, for example pnw-olympics."New value: +"Public accuracy region identifier, for example pnw-olympics. Provide exactly one of region_id and slug."
      • addedInput schema / properties / slug
        Added value: +{
        +  "description": "Public objective slug returned by search_objectives. It resolves to the accuracy region containing the objective. Provide exactly one of slug and region_id.",
        +  "maxLength": 256,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "region_id"
        -]
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "computedAt": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "eligible": {
        -        "type": "boolean"
        -      },
        -      "precipOccurrence": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "accuracyPct": {
        -                "type": "number"
        -              },
        -              "n": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "accuracyPct",
        -              "n"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "const": "insufficient"
        -          }
        -        ]
        -      },
        -      "provenance": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "replaySource": {
        -                "const": "open-meteo-archive"
        -              },
        -              "truth": {
        -                "const": "ifs-9km"
        -              }
        -            },
        -            "required": [
        -              "truth",
        -              "replaySource"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "replaySource": {
        -                "const": "open-meteo-archive"
        -              },
        -              "station": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "distanceMi": {
        -                    "type": "number"
        -                  },
        -                  "elevDeltaFt": {
        -                    "type": "number"
        -                  },
        -                  "network": {
        -                    "enum": [
        -                      "snotel",
        -                      "bc-asws",
        -                      "synoptic"
        -                    ]
        -                  },
        -                  "stationId": {
        -                    "type": "string"
        -                  },
        -                  "stationName": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "stationId",
        -                  "network",
        -                  "stationName",
        -                  "distanceMi",
        -                  "elevDeltaFt"
        -                ],
        -                "type": "object"
        -              },
        -              "truth": {
        -                "const": "station-obs"
        -              }
        -            },
        -            "required": [
        -              "truth",
        -              "replaySource",
        -              "station"
        -            ],
        -            "type": "object"
        -          }
        -        ]
        -      },
        -      "reason": {
        -        "enum": [
        -          "no-station-truth",
        -          "insufficient-samples",
        -          "elevation-gap-exceeded",
        -          "stale-station-truth"
        -        ]
        -      },
        -      "regionId": {
        -        "type": "string"
        -      },
        -      "sampleCount": {
        -        "type": "number"
        -      },
        -      "temperature": {
        -        "oneOf": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "biasF": {
        -                "type": "number"
        -              },
        -              "maeF": {
        -                "type": "number"
        -              },
        -              "n": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "maeF",
        -              "biasF",
        -              "n"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "const": "insufficient"
        -          }
        -        ]
        -      },
        -      "windowDays": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "regionId",
        -      "windowDays",
        -      "sampleCount",
        -      "temperature",
        -      "precipOccurrence",
        -      "provenance",
        -      "computedAt",
        -      "eligible",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "computedAt": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "eligible": {
        +        "type": "boolean"
        +      },
        +      "precipOccurrence": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "accuracyPct": {
        +                "type": "number"
        +              },
        +              "n": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "accuracyPct",
        +              "n"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "const": "insufficient"
        +          }
        +        ]
        +      },
        +      "provenance": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "truth": {
        +                "const": "ifs-9km"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "replaySource": {
        +                "const": "open-meteo-archive"
        +              },
        +              "station": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "distanceMi": {
        +                    "type": "number"
        +                  },
        +                  "elevDeltaFt": {
        +                    "type": "number"
        +                  },
        +                  "network": {
        +                    "enum": [
        +                      "snotel",
        +                      "bc-asws",
        +                      "synoptic"
        +                    ]
        +                  },
        +                  "stationId": {
        +                    "type": "string"
        +                  },
        +                  "stationName": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "stationId",
        +                  "network",
        +                  "stationName",
        +                  "distanceMi",
        +                  "elevDeltaFt"
        +                ],
        +                "type": "object"
        +              },
        +              "truth": {
        +                "const": "station-obs"
        +              }
        +            },
        +            "required": [
        +              "truth",
        +              "replaySource",
        +              "station"
        +            ],
        +            "type": "object"
        +          }
        +        ]
        +      },
        +      "reason": {
        +        "enum": [
        +          "no-station-truth",
        +          "insufficient-samples",
        +          "elevation-gap-exceeded",
        +          "stale-station-truth"
        +        ]
        +      },
        +      "regionId": {
        +        "type": "string"
        +      },
        +      "sampleCount": {
        +        "type": "number"
        +      },
        +      "temperature": {
        +        "oneOf": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "biasF": {
        +                "type": "number"
        +              },
        +              "maeF": {
        +                "type": "number"
        +              },
        +              "n": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "maeF",
        +              "biasF",
        +              "n"
        +            ],
        +            "type": "object"
        +          },
        +          {
        +            "const": "insufficient"
        +          }
        +        ]
        +      },
        +      "windowDays": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "regionId",
        +      "windowDays",
        +      "sampleCount",
        +      "temperature",
        +      "precipOccurrence",
        +      "provenance",
        +      "computedAt",
        +      "eligible",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "knownRegionIds": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText",
        +      "knownRegionIds"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_objective_conditions1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "condition": {
        -              "type": "string"
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous"
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "reliability": {
        -                      "enum": [
        -                        "primary",
        -                        "secondary",
        -                        "supplementary"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "summit"
        -            },
        -            "snowInches": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "windDirection": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "overallRating",
        -            "summitTempLowF",
        -            "summitTempHighF",
        -            "windMaxMph",
        -            "windDirection",
        -            "precipChancePercent",
        -            "provenance",
        -            "referencePoint",
        -            "condition",
        -            "snowInches"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 5,
        -        "prefixItems": [
        -          {
        -            "additionalProperties": false,
        -            "properties": {
        -              "avalancheBasis": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "centerName": {
        -                    "type": [
        -                      "string",
        -                      "null"
        -                    ]
        -                  },
        -                  "included": {
        -                    "type": "boolean"
        -                  },
        -                  "reason": {
        -                    "enum": [
        -                      "off_season",
        -                      "no_zone",
        -                      "not_yet_issued",
        -                      "expired",
        -                      "unavailable",
        -                      null
        -                    ]
        -                  }
        -                },
        -                "required": [
        -                  "included",
        -                  "reason",
        -                  "centerName"
        -                ],
        -                "type": "object"
        -              },
        -              "condition": {
        -                "type": "string"
        -              },
        -              "date": {
        -                "type": "string"
        -              },
        -              "moonIllumination": {
        -                "type": "number"
        -              },
        -              "moonPhase": {
        -                "enum": [
        -                  "new",
        -                  "waxing_crescent",
        -                  "first_quarter",
        -                  "waxing_gibbous",
        -                  "full",
        -                  "waning_gibbous",
        -                  "last_quarter",
        -                  "waning_crescent"
        -                ]
        -              },
        -              "overallRating": {
        -                "enum": [
        -                  "excellent",
        -                  "good",
        -                  "marginal",
        -                  "poor",
        -                  "dangerous"
        -                ]
        -              },
        -              "precipChancePercent": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "provenance": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "weather": {
        -                    "additionalProperties": false,
        -                    "properties": {
        -                      "fetchedAt": {
        -                        "type": [
        -                          "string",
        -                          "null"
        -                        ]
        -                      },
        -                      "reliability": {
        -                        "enum": [
        -                          "primary",
        -                          "secondary",
        -                          "supplementary"
        -                        ]
        -                      },
        -                      "sourceName": {
        -                        "type": "string"
        -                      },
        -                      "url": {
        -                        "type": "string"
        -                      }
        -                    },
        -                    "required": [
        -                      "sourceName"
        -                    ],
        -                    "type": "object"
        -                  }
        -                },
        -                "required": [
        -                  "weather"
        -                ],
        -                "type": "object"
        -              },
        -              "referencePoint": {
        -                "const": "summit"
        -              },
        -              "snowInches": {
        -                "type": [
        -                  "number",
        -                  "null"
        -                ]
        -              },
        -              "summitTempHighF": {
        -                "type": "number"
        -              },
        -              "summitTempLowF": {
        -                "type": "number"
        -              },
        -              "sunrise": {
        -                "type": "string"
        -              },
        -              "sunriseAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "sunset": {
        -                "type": "string"
        -              },
        -              "sunsetAt": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "windDirection": {
        -                "type": [
        -                  "string",
        -                  "null"
        -                ]
        -              },
        -              "windMaxMph": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "date",
        -              "overallRating",
        -              "summitTempLowF",
        -              "summitTempHighF",
        -              "windMaxMph",
        -              "windDirection",
        -              "precipChancePercent",
        -              "provenance",
        -              "referencePoint",
        -              "condition",
        -              "snowInches",
        -              "sunrise",
        -              "sunset",
        -              "sunriseAt",
        -              "sunsetAt",
        -              "moonPhase",
        -              "moonIllumination"
        -            ],
        -            "type": "object"
        -          }
        -        ],
        -        "type": "array"
        -      },
        -      "disclaimer": {
        -        "type": "string"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "lockedOutlook": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "lockedDayCount": {
        -            "minimum": 1,
        -            "type": "integer"
        -          },
        -          "maxHorizonDays": {
        -            "const": 15
        -          },
        -          "note": {
        -            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        -          },
        -          "throughDate": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "lockedDayCount",
        -          "throughDate",
        -          "maxHorizonDays",
        -          "note"
        -        ],
        -        "type": "object"
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "source": {
        -        "const": "ClimbCast"
        -      },
        -      "sourceUrl": {
        -        "type": "string"
        -      },
        -      "sources": {
        -        "items": {
        -          "$ref": "#/$defs/source"
        -        },
        -        "type": "array"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "updatedAt": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "sourceUrl",
        -      "disclaimer",
        -      "objective",
        -      "updatedAt",
        -      "sources",
        -      "disclaimerText",
        -      "days"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "accuracyRegionId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "condition": {
        +              "type": "string"
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous"
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "reliability": {
        +                      "enum": [
        +                        "primary",
        +                        "secondary",
        +                        "supplementary"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "summit"
        +            },
        +            "snowInches": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "overallRating",
        +            "summitTempLowF",
        +            "summitTempHighF",
        +            "windMaxMph",
        +            "windDirection",
        +            "precipChancePercent",
        +            "provenance",
        +            "referencePoint",
        +            "condition",
        +            "snowInches"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 5,
        +        "prefixItems": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "airQuality": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "aqi": {
        +                    "type": "number"
        +                  },
        +                  "category": {
        +                    "type": "string"
        +                  },
        +                  "scale": {
        +                    "enum": [
        +                      "us_aqi",
        +                      "aqhi"
        +                    ]
        +                  },
        +                  "sourceName": {
        +                    "type": "string"
        +                  },
        +                  "warning": {
        +                    "type": "boolean"
        +                  }
        +                },
        +                "required": [
        +                  "aqi",
        +                  "category",
        +                  "scale",
        +                  "sourceName",
        +                  "warning"
        +                ],
        +                "type": "object"
        +              },
        +              "avalancheBasis": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "centerName": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "included": {
        +                    "type": "boolean"
        +                  },
        +                  "reason": {
        +                    "enum": [
        +                      "off_season",
        +                      "no_zone",
        +                      "not_yet_issued",
        +                      "expired",
        +                      "unavailable",
        +                      null
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "included",
        +                  "reason",
        +                  "centerName"
        +                ],
        +                "type": "object"
        +              },
        +              "condition": {
        +                "type": "string"
        +              },
        +              "date": {
        +                "type": "string"
        +              },
        +              "moonIllumination": {
        +                "type": "number"
        +              },
        +              "moonPhase": {
        +                "enum": [
        +                  "new",
        +                  "waxing_crescent",
        +                  "first_quarter",
        +                  "waxing_gibbous",
        +                  "full",
        +                  "waning_gibbous",
        +                  "last_quarter",
        +                  "waning_crescent"
        +                ]
        +              },
        +              "overallRating": {
        +                "enum": [
        +                  "excellent",
        +                  "good",
        +                  "marginal",
        +                  "poor",
        +                  "dangerous"
        +                ]
        +              },
        +              "precipChancePercent": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "provenance": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "weather": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "fetchedAt": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "reliability": {
        +                        "enum": [
        +                          "primary",
        +                          "secondary",
        +                          "supplementary"
        +                        ]
        +                      },
        +                      "sourceName": {
        +                        "type": "string"
        +                      },
        +                      "url": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "sourceName"
        +                    ],
        +                    "type": "object"
        +                  }
        +                },
        +                "required": [
        +                  "weather"
        +                ],
        +                "type": "object"
        +              },
        +              "referencePoint": {
        +                "const": "summit"
        +              },
        +              "snowInches": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "summitTempHighF": {
        +                "type": "number"
        +              },
        +              "summitTempLowF": {
        +                "type": "number"
        +              },
        +              "sunrise": {
        +                "type": "string"
        +              },
        +              "sunriseAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "sunset": {
        +                "type": "string"
        +              },
        +              "sunsetAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windDirection": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windMaxMph": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "date",
        +              "overallRating",
        +              "summitTempLowF",
        +              "summitTempHighF",
        +              "windMaxMph",
        +              "windDirection",
        +              "precipChancePercent",
        +              "provenance",
        +              "referencePoint",
        +              "condition",
        +              "snowInches",
        +              "sunrise",
        +              "sunset",
        +              "sunriseAt",
        +              "sunsetAt",
        +              "moonPhase",
        +              "moonIllumination"
        +            ],
        +            "type": "object"
        +          }
        +        ],
        +        "type": "array"
        +      },
        +      "disclaimer": {
        +        "type": "string"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "routes": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "difficulty": {
        +              "type": "string"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "roundTripDistanceMi": {
        +              "type": "number"
        +            },
        +            "type": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "difficulty",
        +            "type"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "source": {
        +        "const": "ClimbCast"
        +      },
        +      "sourceUrl": {
        +        "type": "string"
        +      },
        +      "sources": {
        +        "items": {
        +          "$ref": "#/$defs/source"
        +        },
        +        "type": "array"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "sourceUrl",
        +      "disclaimer",
        +      "objective",
        +      "accuracyRegionId",
        +      "updatedAt",
        +      "sources",
        +      "disclaimerText",
        +      "routes",
        +      "days"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_route_conditions2 fields changed
      • addedInput schema / properties / activity
        Added value: +{
        +  "description": "Optional activity mode for the route forecast. Accepted values are the route's activities entries from search_objectives. When omitted, the route's default visible activity is used.",
        +  "maxLength": 64,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheDanger": {
        -              "enum": [
        -                "low",
        -                "moderate",
        -                "considerable",
        -                "high",
        -                "extreme",
        -                "no_data"
        -              ]
        -            },
        -            "cornHarvestWindow": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "status": {
        -                      "type": "string"
        -                    },
        -                    "window": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "end": {
        -                              "type": "string"
        -                            },
        -                            "start": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "start",
        -                            "end"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "status",
        -                    "window"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "moonIllumination": {
        -              "type": "number"
        -            },
        -            "moonPhase": {
        -              "enum": [
        -                "new",
        -                "waxing_crescent",
        -                "first_quarter",
        -                "waxing_gibbous",
        -                "full",
        -                "waning_gibbous",
        -                "last_quarter",
        -                "waning_crescent"
        -              ]
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous",
        -                null
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "reliability": {
        -                      "enum": [
        -                        "primary",
        -                        "secondary",
        -                        "supplementary"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "route-high-point"
        -            },
        -            "snowpackCondition": {
        -              "enum": [
        -                "powder",
        -                "packed_powder",
        -                "wind_crust",
        -                "sun_crust",
        -                "corn",
        -                "ice",
        -                "wet_heavy",
        -                "bare"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "sunrise": {
        -              "type": "string"
        -            },
        -            "sunriseAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "sunset": {
        -              "type": "string"
        -            },
        -            "sunsetAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windAvgMph": {
        -              "type": "number"
        -            },
        -            "windDirection": {
        -              "type": "string"
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "overallRating",
        -            "summitTempLowF",
        -            "summitTempHighF",
        -            "windMaxMph",
        -            "windDirection",
        -            "precipChancePercent",
        -            "provenance",
        -            "sunrise",
        -            "sunset",
        -            "sunriseAt",
        -            "sunsetAt",
        -            "moonPhase",
        -            "moonIllumination",
        -            "snowpackCondition",
        -            "referencePoint",
        -            "windAvgMph"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 5,
        -        "type": "array"
        -      },
        -      "disclaimer": {
        -        "type": "string"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "lockedOutlook": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "lockedDayCount": {
        -            "minimum": 1,
        -            "type": "integer"
        -          },
        -          "maxHorizonDays": {
        -            "const": 15
        -          },
        -          "note": {
        -            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        -          },
        -          "throughDate": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "lockedDayCount",
        -          "throughDate",
        -          "maxHorizonDays",
        -          "note"
        -        ],
        -        "type": "object"
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "route": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "activityMode": {
        -            "enum": [
        -              "mountaineering",
        -              "skimo_splitboard",
        -              "rock_climbing",
        -              "trail_running",
        -              "mountain_biking",
        -              "snowmobiling",
        -              "ice_climbing"
        -            ]
        -          },
        -          "aspect": {
        -            "type": "string"
        -          },
        -          "highPointElevationFt": {
        -            "type": "number"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "supportedActivities": {
        -            "items": {
        -              "enum": [
        -                "mountaineering",
        -                "skimo_splitboard",
        -                "rock_climbing",
        -                "trail_running",
        -                "mountain_biking",
        -                "snowmobiling",
        -                "ice_climbing"
        -              ]
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "activityMode",
        -          "supportedActivities"
        -        ],
        -        "type": "object"
        -      },
        -      "source": {
        -        "const": "ClimbCast"
        -      },
        -      "sourceUrl": {
        -        "type": "string"
        -      },
        -      "sources": {
        -        "items": {
        -          "$ref": "#/$defs/source"
        -        },
        -        "type": "array"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "updatedAt": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "sourceUrl",
        -      "disclaimer",
        -      "objective",
        -      "updatedAt",
        -      "sources",
        -      "disclaimerText",
        -      "route",
        -      "days"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "accuracyRegionId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      },
        +      "airQualityTrend": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "backfilledFrom": {
        +            "type": "string"
        +          },
        +          "firstDate": {
        +            "type": "string"
        +          },
        +          "lastDate": {
        +            "type": "string"
        +          },
        +          "latestValue": {
        +            "type": "number"
        +          },
        +          "scale": {
        +            "enum": [
        +              "us_aqi",
        +              "aqhi"
        +            ]
        +          }
        +        },
        +        "required": [
        +          "scale",
        +          "firstDate",
        +          "lastDate",
        +          "latestValue"
        +        ],
        +        "type": "object"
        +      },
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "airQuality": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "aqi": {
        +                  "type": "number"
        +                },
        +                "category": {
        +                  "type": "string"
        +                },
        +                "scale": {
        +                  "enum": [
        +                    "us_aqi",
        +                    "aqhi"
        +                  ]
        +                },
        +                "sourceName": {
        +                  "type": "string"
        +                },
        +                "warning": {
        +                  "type": "boolean"
        +                }
        +              },
        +              "required": [
        +                "aqi",
        +                "category",
        +                "scale",
        +                "sourceName",
        +                "warning"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheDanger": {
        +              "enum": [
        +                "low",
        +                "moderate",
        +                "considerable",
        +                "high",
        +                "extreme",
        +                "no_data"
        +              ]
        +            },
        +            "cornHarvestWindow": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "status": {
        +                      "type": "string"
        +                    },
        +                    "window": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "end": {
        +                              "type": "string"
        +                            },
        +                            "start": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "start",
        +                            "end"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "status",
        +                    "window"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "moonIllumination": {
        +              "type": "number"
        +            },
        +            "moonPhase": {
        +              "enum": [
        +                "new",
        +                "waxing_crescent",
        +                "first_quarter",
        +                "waxing_gibbous",
        +                "full",
        +                "waning_gibbous",
        +                "last_quarter",
        +                "waning_crescent"
        +              ]
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous",
        +                null
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "reliability": {
        +                      "enum": [
        +                        "primary",
        +                        "secondary",
        +                        "supplementary"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "route-high-point"
        +            },
        +            "snowpackCondition": {
        +              "enum": [
        +                "powder",
        +                "packed_powder",
        +                "wind_crust",
        +                "sun_crust",
        +                "corn",
        +                "ice",
        +                "wet_heavy",
        +                "bare"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "sunrise": {
        +              "type": "string"
        +            },
        +            "sunriseAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "sunset": {
        +              "type": "string"
        +            },
        +            "sunsetAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "windAvgMph": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": "string"
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "overallRating",
        +            "summitTempLowF",
        +            "summitTempHighF",
        +            "windMaxMph",
        +            "windDirection",
        +            "precipChancePercent",
        +            "provenance",
        +            "sunrise",
        +            "sunset",
        +            "sunriseAt",
        +            "sunsetAt",
        +            "moonPhase",
        +            "moonIllumination",
        +            "snowpackCondition",
        +            "referencePoint",
        +            "windAvgMph"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 5,
        +        "type": "array"
        +      },
        +      "disclaimer": {
        +        "type": "string"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "route": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "activityMode": {
        +            "enum": [
        +              "mountaineering",
        +              "skimo_splitboard",
        +              "rock_climbing",
        +              "trail_running",
        +              "mountain_biking",
        +              "snowmobiling",
        +              "ice_climbing"
        +            ]
        +          },
        +          "aspect": {
        +            "type": "string"
        +          },
        +          "catalogGainFt": {
        +            "type": "number"
        +          },
        +          "highPointElevationFt": {
        +            "type": "number"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "supportedActivities": {
        +            "items": {
        +              "enum": [
        +                "mountaineering",
        +                "skimo_splitboard",
        +                "rock_climbing",
        +                "trail_running",
        +                "mountain_biking",
        +                "snowmobiling",
        +                "ice_climbing"
        +              ]
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "catalogGainFt",
        +          "activityMode",
        +          "supportedActivities"
        +        ],
        +        "type": "object"
        +      },
        +      "source": {
        +        "const": "ClimbCast"
        +      },
        +      "sourceUrl": {
        +        "type": "string"
        +      },
        +      "sources": {
        +        "items": {
        +          "$ref": "#/$defs/source"
        +        },
        +        "type": "array"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "sourceUrl",
        +      "disclaimer",
        +      "objective",
        +      "accuracyRegionId",
        +      "updatedAt",
        +      "sources",
        +      "disclaimerText",
        +      "route",
        +      "days"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedsearch_objectives1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "objectives": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "conditions_url": {
        -              "type": "string"
        -            },
        -            "elevation_ft": {
        -              "type": "number"
        -            },
        -            "lat": {
        -              "type": "number"
        -            },
        -            "lon": {
        -              "type": "number"
        -            },
        -            "name": {
        -              "type": "string"
        -            },
        -            "region": {
        -              "type": "string"
        -            },
        -            "routes": {
        -              "items": {
        -                "additionalProperties": false,
        -                "properties": {
        -                  "activity": {
        -                    "enum": [
        -                      "mountaineering",
        -                      "skimo_splitboard",
        -                      "rock_climbing"
        -                    ]
        -                  },
        -                  "id": {
        -                    "type": "string"
        -                  },
        -                  "name": {
        -                    "type": "string"
        -                  }
        -                },
        -                "required": [
        -                  "id",
        -                  "name",
        -                  "activity"
        -                ],
        -                "type": "object"
        -              },
        -              "type": "array"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name",
        -            "elevation_ft",
        -            "region",
        -            "lat",
        -            "lon",
        -            "routes",
        -            "conditions_url"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "truncated": {
        -        "type": "boolean"
        -      }
        -    },
        -    "required": [
        -      "objectives",
        -      "truncated",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "objectives": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "conditions_url": {
        +              "type": "string"
        +            },
        +            "elevation_ft": {
        +              "type": "number"
        +            },
        +            "lat": {
        +              "type": "number"
        +            },
        +            "lon": {
        +              "type": "number"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "region": {
        +              "type": "string"
        +            },
        +            "routes": {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "activities": {
        +                    "items": {
        +                      "enum": [
        +                        "mountaineering",
        +                        "skimo_splitboard",
        +                        "rock_climbing"
        +                      ]
        +                    },
        +                    "type": "array"
        +                  },
        +                  "activity": {
        +                    "enum": [
        +                      "mountaineering",
        +                      "skimo_splitboard",
        +                      "rock_climbing"
        +                    ]
        +                  },
        +                  "id": {
        +                    "type": "string"
        +                  },
        +                  "name": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "id",
        +                  "name",
        +                  "activity",
        +                  "activities"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name",
        +            "elevation_ft",
        +            "region",
        +            "lat",
        +            "lon",
        +            "routes",
        +            "conditions_url"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "truncated": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "objectives",
        +      "truncated",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
  4. 3 tool updates
    • Addedget_alerts
    • Changedget_objective_conditions1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheDanger": {
        -              "enum": [
        -                "low",
        -                "moderate",
        -                "considerable",
        -                "high",
        -                "extreme",
        -                "no_data"
        -              ]
        -            },
        -            "condition": {
        -              "type": "string"
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "freezingLevelFt": {
        -              "type": "number"
        -            },
        -            "moonIllumination": {
        -              "type": "number"
        -            },
        -            "moonPhase": {
        -              "enum": [
        -                "new",
        -                "waxing_crescent",
        -                "first_quarter",
        -                "waxing_gibbous",
        -                "full",
        -                "waning_gibbous",
        -                "last_quarter",
        -                "waning_crescent"
        -              ]
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous"
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "reliability": {
        -                      "enum": [
        -                        "primary",
        -                        "secondary",
        -                        "supplementary"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "summit"
        -            },
        -            "snowInches": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "snowpackCondition": {
        -              "enum": [
        -                "powder",
        -                "packed_powder",
        -                "wind_crust",
        -                "sun_crust",
        -                "corn",
        -                "ice",
        -                "wet_heavy",
        -                "bare"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "sunrise": {
        -              "type": "string"
        -            },
        -            "sunriseAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "sunset": {
        -              "type": "string"
        -            },
        -            "sunsetAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windDirection": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "overallRating",
        -            "summitTempLowF",
        -            "summitTempHighF",
        -            "windMaxMph",
        -            "windDirection",
        -            "precipChancePercent",
        -            "freezingLevelFt",
        -            "snowpackCondition",
        -            "sunrise",
        -            "sunset",
        -            "sunriseAt",
        -            "sunsetAt",
        -            "moonPhase",
        -            "moonIllumination",
        -            "provenance",
        -            "referencePoint",
        -            "condition",
        -            "snowInches"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "disclaimer": {
        -        "type": "string"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "source": {
        -        "const": "ClimbCast"
        -      },
        -      "sourceUrl": {
        -        "type": "string"
        -      },
        -      "sources": {
        -        "items": {
        -          "$ref": "#/$defs/source"
        -        },
        -        "type": "array"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "updatedAt": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "sourceUrl",
        -      "disclaimer",
        -      "objective",
        -      "updatedAt",
        -      "sources",
        -      "disclaimerText",
        -      "days"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "condition": {
        +              "type": "string"
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous"
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "reliability": {
        +                      "enum": [
        +                        "primary",
        +                        "secondary",
        +                        "supplementary"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "summit"
        +            },
        +            "snowInches": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "overallRating",
        +            "summitTempLowF",
        +            "summitTempHighF",
        +            "windMaxMph",
        +            "windDirection",
        +            "precipChancePercent",
        +            "provenance",
        +            "referencePoint",
        +            "condition",
        +            "snowInches"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 5,
        +        "prefixItems": [
        +          {
        +            "additionalProperties": false,
        +            "properties": {
        +              "avalancheBasis": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "centerName": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "included": {
        +                    "type": "boolean"
        +                  },
        +                  "reason": {
        +                    "enum": [
        +                      "off_season",
        +                      "no_zone",
        +                      "not_yet_issued",
        +                      "expired",
        +                      "unavailable",
        +                      null
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "included",
        +                  "reason",
        +                  "centerName"
        +                ],
        +                "type": "object"
        +              },
        +              "condition": {
        +                "type": "string"
        +              },
        +              "date": {
        +                "type": "string"
        +              },
        +              "moonIllumination": {
        +                "type": "number"
        +              },
        +              "moonPhase": {
        +                "enum": [
        +                  "new",
        +                  "waxing_crescent",
        +                  "first_quarter",
        +                  "waxing_gibbous",
        +                  "full",
        +                  "waning_gibbous",
        +                  "last_quarter",
        +                  "waning_crescent"
        +                ]
        +              },
        +              "overallRating": {
        +                "enum": [
        +                  "excellent",
        +                  "good",
        +                  "marginal",
        +                  "poor",
        +                  "dangerous"
        +                ]
        +              },
        +              "precipChancePercent": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "provenance": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "weather": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "fetchedAt": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "reliability": {
        +                        "enum": [
        +                          "primary",
        +                          "secondary",
        +                          "supplementary"
        +                        ]
        +                      },
        +                      "sourceName": {
        +                        "type": "string"
        +                      },
        +                      "url": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "sourceName"
        +                    ],
        +                    "type": "object"
        +                  }
        +                },
        +                "required": [
        +                  "weather"
        +                ],
        +                "type": "object"
        +              },
        +              "referencePoint": {
        +                "const": "summit"
        +              },
        +              "snowInches": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "summitTempHighF": {
        +                "type": "number"
        +              },
        +              "summitTempLowF": {
        +                "type": "number"
        +              },
        +              "sunrise": {
        +                "type": "string"
        +              },
        +              "sunriseAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "sunset": {
        +                "type": "string"
        +              },
        +              "sunsetAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windDirection": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windMaxMph": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "date",
        +              "overallRating",
        +              "summitTempLowF",
        +              "summitTempHighF",
        +              "windMaxMph",
        +              "windDirection",
        +              "precipChancePercent",
        +              "provenance",
        +              "referencePoint",
        +              "condition",
        +              "snowInches",
        +              "sunrise",
        +              "sunset",
        +              "sunriseAt",
        +              "sunsetAt",
        +              "moonPhase",
        +              "moonIllumination"
        +            ],
        +            "type": "object"
        +          }
        +        ],
        +        "type": "array"
        +      },
        +      "disclaimer": {
        +        "type": "string"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "source": {
        +        "const": "ClimbCast"
        +      },
        +      "sourceUrl": {
        +        "type": "string"
        +      },
        +      "sources": {
        +        "items": {
        +          "$ref": "#/$defs/source"
        +        },
        +        "type": "array"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "sourceUrl",
        +      "disclaimer",
        +      "objective",
        +      "updatedAt",
        +      "sources",
        +      "disclaimerText",
        +      "days"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
    • Changedget_route_conditions1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "days": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "avalancheBasis": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "centerName": {
        -                  "type": [
        -                    "string",
        -                    "null"
        -                  ]
        -                },
        -                "included": {
        -                  "type": "boolean"
        -                },
        -                "reason": {
        -                  "enum": [
        -                    "off_season",
        -                    "no_zone",
        -                    "not_yet_issued",
        -                    "expired",
        -                    "unavailable",
        -                    null
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "included",
        -                "reason",
        -                "centerName"
        -              ],
        -              "type": "object"
        -            },
        -            "avalancheDanger": {
        -              "enum": [
        -                "low",
        -                "moderate",
        -                "considerable",
        -                "high",
        -                "extreme",
        -                "no_data"
        -              ]
        -            },
        -            "cornHarvestWindow": {
        -              "anyOf": [
        -                {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "status": {
        -                      "type": "string"
        -                    },
        -                    "window": {
        -                      "anyOf": [
        -                        {
        -                          "additionalProperties": false,
        -                          "properties": {
        -                            "end": {
        -                              "type": "string"
        -                            },
        -                            "start": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "start",
        -                            "end"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "type": "null"
        -                        }
        -                      ]
        -                    }
        -                  },
        -                  "required": [
        -                    "status",
        -                    "window"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "date": {
        -              "type": "string"
        -            },
        -            "freezingLevelFt": {
        -              "type": "number"
        -            },
        -            "moonIllumination": {
        -              "type": "number"
        -            },
        -            "moonPhase": {
        -              "enum": [
        -                "new",
        -                "waxing_crescent",
        -                "first_quarter",
        -                "waxing_gibbous",
        -                "full",
        -                "waning_gibbous",
        -                "last_quarter",
        -                "waning_crescent"
        -              ]
        -            },
        -            "overallRating": {
        -              "enum": [
        -                "excellent",
        -                "good",
        -                "marginal",
        -                "poor",
        -                "dangerous"
        -              ]
        -            },
        -            "precipChancePercent": {
        -              "type": [
        -                "number",
        -                "null"
        -              ]
        -            },
        -            "precipType": {
        -              "enum": [
        -                "none",
        -                "rain",
        -                "snow",
        -                "mixed",
        -                "sleet"
        -              ]
        -            },
        -            "provenance": {
        -              "additionalProperties": false,
        -              "properties": {
        -                "weather": {
        -                  "additionalProperties": false,
        -                  "properties": {
        -                    "fetchedAt": {
        -                      "type": [
        -                        "string",
        -                        "null"
        -                      ]
        -                    },
        -                    "reliability": {
        -                      "enum": [
        -                        "primary",
        -                        "secondary",
        -                        "supplementary"
        -                      ]
        -                    },
        -                    "sourceName": {
        -                      "type": "string"
        -                    },
        -                    "url": {
        -                      "type": "string"
        -                    }
        -                  },
        -                  "required": [
        -                    "sourceName"
        -                  ],
        -                  "type": "object"
        -                }
        -              },
        -              "required": [
        -                "weather"
        -              ],
        -              "type": "object"
        -            },
        -            "referencePoint": {
        -              "const": "route-high-point"
        -            },
        -            "snowpackCondition": {
        -              "enum": [
        -                "powder",
        -                "packed_powder",
        -                "wind_crust",
        -                "sun_crust",
        -                "corn",
        -                "ice",
        -                "wet_heavy",
        -                "bare"
        -              ]
        -            },
        -            "summitTempHighF": {
        -              "type": "number"
        -            },
        -            "summitTempLowF": {
        -              "type": "number"
        -            },
        -            "sunrise": {
        -              "type": "string"
        -            },
        -            "sunriseAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "sunset": {
        -              "type": "string"
        -            },
        -            "sunsetAt": {
        -              "type": [
        -                "string",
        -                "null"
        -              ]
        -            },
        -            "windAvgMph": {
        -              "type": "number"
        -            },
        -            "windDirection": {
        -              "type": "string"
        -            },
        -            "windMaxMph": {
        -              "type": "number"
        -            }
        -          },
        -          "required": [
        -            "date",
        -            "overallRating",
        -            "summitTempLowF",
        -            "summitTempHighF",
        -            "windMaxMph",
        -            "windDirection",
        -            "precipChancePercent",
        -            "freezingLevelFt",
        -            "snowpackCondition",
        -            "avalancheDanger",
        -            "sunrise",
        -            "sunset",
        -            "sunriseAt",
        -            "sunsetAt",
        -            "moonPhase",
        -            "moonIllumination",
        -            "provenance",
        -            "referencePoint",
        -            "windAvgMph",
        -            "precipType"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "disclaimer": {
        -        "type": "string"
        -      },
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "objective": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "name": {
        -            "type": "string"
        -          },
        -          "slug": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "slug",
        -          "name"
        -        ],
        -        "type": "object"
        -      },
        -      "route": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "activityMode": {
        -            "enum": [
        -              "mountaineering",
        -              "skimo_splitboard",
        -              "rock_climbing",
        -              "trail_running",
        -              "mountain_biking",
        -              "snowmobiling",
        -              "ice_climbing"
        -            ]
        -          },
        -          "aspect": {
        -            "type": "string"
        -          },
        -          "highPointElevationFt": {
        -            "type": "number"
        -          },
        -          "id": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "supportedActivities": {
        -            "items": {
        -              "enum": [
        -                "mountaineering",
        -                "skimo_splitboard",
        -                "rock_climbing",
        -                "trail_running",
        -                "mountain_biking",
        -                "snowmobiling",
        -                "ice_climbing"
        -              ]
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "id",
        -          "name",
        -          "activityMode",
        -          "supportedActivities"
        -        ],
        -        "type": "object"
        -      },
        -      "source": {
        -        "const": "ClimbCast"
        -      },
        -      "sourceUrl": {
        -        "type": "string"
        -      },
        -      "sources": {
        -        "items": {
        -          "$ref": "#/$defs/source"
        -        },
        -        "type": "array"
        -      },
        -      "timeZone": {
        -        "type": "string"
        -      },
        -      "updatedAt": {
        -        "type": "string"
        -      },
        -      "utcOffsetSeconds": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "source",
        -      "sourceUrl",
        -      "disclaimer",
        -      "objective",
        -      "updatedAt",
        -      "sources",
        -      "disclaimerText",
        -      "route",
        -      "days"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "status": {
        -        "const": "not_found"
        -      },
        -      "suggestions": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "name": {
        -              "type": "string"
        -            },
        -            "slug": {
        -              "type": "string"
        -            }
        -          },
        -          "required": [
        -            "slug",
        -            "name"
        -          ],
        -          "type": "object"
        -        },
        -        "maxItems": 3,
        -        "type": "array"
        -      },
        -      "try": {
        -        "const": "search_objectives"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "try",
        -      "suggestions",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "const": "invalid_input"
        -      },
        -      "fields": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "allowed": {
        -              "items": {
        -                "type": "string"
        -              },
        -              "type": "array"
        -            },
        -            "field": {
        -              "type": "string"
        -            },
        -            "problem": {
        -              "enum": [
        -                "required",
        -                "type",
        -                "enum",
        -                "length",
        -                "pattern",
        -                "range",
        -                "unexpected"
        -              ]
        -            }
        -          },
        -          "required": [
        -            "field",
        -            "problem"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText",
        -      "fields"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disclaimerText": {
        -        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        -      },
        -      "error": {
        -        "enum": [
        -          "MCP_BUSY",
        -          "MCP_RESPONSE_TOO_LARGE",
        -          "MCP_VOICE_GATE_FAILED",
        -          "MCP_TOOL_FAILED",
        -          "rate_limited",
        -          "processing_limit",
        -          "response_limit"
        -        ]
        -      },
        -      "message": {
        -        "type": "string"
        -      },
        -      "requestId": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      }
        -    },
        -    "required": [
        -      "error",
        -      "message",
        -      "requestId",
        -      "disclaimerText"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "days": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "avalancheBasis": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "centerName": {
        +                  "type": [
        +                    "string",
        +                    "null"
        +                  ]
        +                },
        +                "included": {
        +                  "type": "boolean"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "off_season",
        +                    "no_zone",
        +                    "not_yet_issued",
        +                    "expired",
        +                    "unavailable",
        +                    null
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "included",
        +                "reason",
        +                "centerName"
        +              ],
        +              "type": "object"
        +            },
        +            "avalancheDanger": {
        +              "enum": [
        +                "low",
        +                "moderate",
        +                "considerable",
        +                "high",
        +                "extreme",
        +                "no_data"
        +              ]
        +            },
        +            "cornHarvestWindow": {
        +              "anyOf": [
        +                {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "status": {
        +                      "type": "string"
        +                    },
        +                    "window": {
        +                      "anyOf": [
        +                        {
        +                          "additionalProperties": false,
        +                          "properties": {
        +                            "end": {
        +                              "type": "string"
        +                            },
        +                            "start": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "start",
        +                            "end"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "type": "null"
        +                        }
        +                      ]
        +                    }
        +                  },
        +                  "required": [
        +                    "status",
        +                    "window"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "moonIllumination": {
        +              "type": "number"
        +            },
        +            "moonPhase": {
        +              "enum": [
        +                "new",
        +                "waxing_crescent",
        +                "first_quarter",
        +                "waxing_gibbous",
        +                "full",
        +                "waning_gibbous",
        +                "last_quarter",
        +                "waning_crescent"
        +              ]
        +            },
        +            "overallRating": {
        +              "enum": [
        +                "excellent",
        +                "good",
        +                "marginal",
        +                "poor",
        +                "dangerous",
        +                null
        +              ]
        +            },
        +            "precipChancePercent": {
        +              "type": [
        +                "number",
        +                "null"
        +              ]
        +            },
        +            "provenance": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "weather": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "fetchedAt": {
        +                      "type": [
        +                        "string",
        +                        "null"
        +                      ]
        +                    },
        +                    "reliability": {
        +                      "enum": [
        +                        "primary",
        +                        "secondary",
        +                        "supplementary"
        +                      ]
        +                    },
        +                    "sourceName": {
        +                      "type": "string"
        +                    },
        +                    "url": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "sourceName"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "weather"
        +              ],
        +              "type": "object"
        +            },
        +            "referencePoint": {
        +              "const": "route-high-point"
        +            },
        +            "snowpackCondition": {
        +              "enum": [
        +                "powder",
        +                "packed_powder",
        +                "wind_crust",
        +                "sun_crust",
        +                "corn",
        +                "ice",
        +                "wet_heavy",
        +                "bare"
        +              ]
        +            },
        +            "summitTempHighF": {
        +              "type": "number"
        +            },
        +            "summitTempLowF": {
        +              "type": "number"
        +            },
        +            "sunrise": {
        +              "type": "string"
        +            },
        +            "sunriseAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "sunset": {
        +              "type": "string"
        +            },
        +            "sunsetAt": {
        +              "type": [
        +                "string",
        +                "null"
        +              ]
        +            },
        +            "windAvgMph": {
        +              "type": "number"
        +            },
        +            "windDirection": {
        +              "type": "string"
        +            },
        +            "windMaxMph": {
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "overallRating",
        +            "summitTempLowF",
        +            "summitTempHighF",
        +            "windMaxMph",
        +            "windDirection",
        +            "precipChancePercent",
        +            "provenance",
        +            "sunrise",
        +            "sunset",
        +            "sunriseAt",
        +            "sunsetAt",
        +            "moonPhase",
        +            "moonIllumination",
        +            "snowpackCondition",
        +            "referencePoint",
        +            "windAvgMph"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 5,
        +        "type": "array"
        +      },
        +      "disclaimer": {
        +        "type": "string"
        +      },
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "lockedOutlook": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "lockedDayCount": {
        +            "minimum": 1,
        +            "type": "integer"
        +          },
        +          "maxHorizonDays": {
        +            "const": 15
        +          },
        +          "note": {
        +            "const": "This response covers days 1 to 5. Later days are published on climbcast.io."
        +          },
        +          "throughDate": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "lockedDayCount",
        +          "throughDate",
        +          "maxHorizonDays",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "objective": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "name": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "name"
        +        ],
        +        "type": "object"
        +      },
        +      "route": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "activityMode": {
        +            "enum": [
        +              "mountaineering",
        +              "skimo_splitboard",
        +              "rock_climbing",
        +              "trail_running",
        +              "mountain_biking",
        +              "snowmobiling",
        +              "ice_climbing"
        +            ]
        +          },
        +          "aspect": {
        +            "type": "string"
        +          },
        +          "highPointElevationFt": {
        +            "type": "number"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "supportedActivities": {
        +            "items": {
        +              "enum": [
        +                "mountaineering",
        +                "skimo_splitboard",
        +                "rock_climbing",
        +                "trail_running",
        +                "mountain_biking",
        +                "snowmobiling",
        +                "ice_climbing"
        +              ]
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "activityMode",
        +          "supportedActivities"
        +        ],
        +        "type": "object"
        +      },
        +      "source": {
        +        "const": "ClimbCast"
        +      },
        +      "sourceUrl": {
        +        "type": "string"
        +      },
        +      "sources": {
        +        "items": {
        +          "$ref": "#/$defs/source"
        +        },
        +        "type": "array"
        +      },
        +      "timeZone": {
        +        "type": "string"
        +      },
        +      "updatedAt": {
        +        "type": "string"
        +      },
        +      "utcOffsetSeconds": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "source",
        +      "sourceUrl",
        +      "disclaimer",
        +      "objective",
        +      "updatedAt",
        +      "sources",
        +      "disclaimerText",
        +      "route",
        +      "days"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "const": "not_found"
        +      },
        +      "suggestions": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "maxItems": 3,
        +        "type": "array"
        +      },
        +      "try": {
        +        "const": "search_objectives"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "try",
        +      "suggestions",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "const": "invalid_input"
        +      },
        +      "fields": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "allowed": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "field": {
        +              "type": "string"
        +            },
        +            "problem": {
        +              "enum": [
        +                "required",
        +                "type",
        +                "enum",
        +                "length",
        +                "pattern",
        +                "range",
        +                "unexpected"
        +              ]
        +            }
        +          },
        +          "required": [
        +            "field",
        +            "problem"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText",
        +      "fields"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disclaimerText": {
        +        "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +      },
        +      "error": {
        +        "enum": [
        +          "MCP_BUSY",
        +          "MCP_RESPONSE_TOO_LARGE",
        +          "MCP_VOICE_GATE_FAILED",
        +          "MCP_TOOL_FAILED",
        +          "rate_limited",
        +          "processing_limit",
        +          "response_limit"
        +        ]
        +      },
        +      "message": {
        +        "type": "string"
        +      },
        +      "requestId": {
        +        "type": [
        +          "string",
        +          "null"
        +        ]
        +      }
        +    },
        +    "required": [
        +      "error",
        +      "message",
        +      "requestId",
        +      "disclaimerText"
        +    ],
        +    "type": "object"
        +  }
        +]
  5. 4 tool updates
    • Changedget_forecast_accuracy1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "oneOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "computedAt": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "eligible": {
        +          "type": "boolean"
        +        },
        +        "precipOccurrence": {
        +          "oneOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "accuracyPct": {
        +                  "type": "number"
        +                },
        +                "n": {
        +                  "type": "number"
        +                }
        +              },
        +              "required": [
        +                "accuracyPct",
        +                "n"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "const": "insufficient"
        +            }
        +          ]
        +        },
        +        "provenance": {
        +          "oneOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "replaySource": {
        +                  "const": "open-meteo-archive"
        +                },
        +                "truth": {
        +                  "const": "ifs-9km"
        +                }
        +              },
        +              "required": [
        +                "truth",
        +                "replaySource"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "replaySource": {
        +                  "const": "open-meteo-archive"
        +                },
        +                "station": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "distanceMi": {
        +                      "type": "number"
        +                    },
        +                    "elevDeltaFt": {
        +                      "type": "number"
        +                    },
        +                    "network": {
        +                      "enum": [
        +                        "snotel",
        +                        "bc-asws",
        +                        "synoptic"
        +                      ]
        +                    },
        +                    "stationId": {
        +                      "type": "string"
        +                    },
        +                    "stationName": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "stationId",
        +                    "network",
        +                    "stationName",
        +                    "distanceMi",
        +                    "elevDeltaFt"
        +                  ],
        +                  "type": "object"
        +                },
        +                "truth": {
        +                  "const": "station-obs"
        +                }
        +              },
        +              "required": [
        +                "truth",
        +                "replaySource",
        +                "station"
        +              ],
        +              "type": "object"
        +            }
        +          ]
        +        },
        +        "reason": {
        +          "enum": [
        +            "no-station-truth",
        +            "insufficient-samples",
        +            "elevation-gap-exceeded",
        +            "stale-station-truth"
        +          ]
        +        },
        +        "regionId": {
        +          "type": "string"
        +        },
        +        "sampleCount": {
        +          "type": "number"
        +        },
        +        "temperature": {
        +          "oneOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "biasF": {
        +                  "type": "number"
        +                },
        +                "maeF": {
        +                  "type": "number"
        +                },
        +                "n": {
        +                  "type": "number"
        +                }
        +              },
        +              "required": [
        +                "maeF",
        +                "biasF",
        +                "n"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "const": "insufficient"
        +            }
        +          ]
        +        },
        +        "windowDays": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "regionId",
        +        "windowDays",
        +        "sampleCount",
        +        "temperature",
        +        "precipOccurrence",
        +        "provenance",
        +        "computedAt",
        +        "eligible",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "status": {
        +          "const": "not_found"
        +        },
        +        "suggestions": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "name": {
        +                "type": "string"
        +              },
        +              "slug": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "slug",
        +              "name"
        +            ],
        +            "type": "object"
        +          },
        +          "maxItems": 3,
        +          "type": "array"
        +        },
        +        "try": {
        +          "const": "search_objectives"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "message",
        +        "try",
        +        "suggestions",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "error": {
        +          "const": "invalid_input"
        +        },
        +        "fields": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "allowed": {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "field": {
        +                "type": "string"
        +              },
        +              "problem": {
        +                "enum": [
        +                  "required",
        +                  "type",
        +                  "enum",
        +                  "length",
        +                  "pattern",
        +                  "range",
        +                  "unexpected"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "field",
        +              "problem"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "requestId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "error",
        +        "message",
        +        "requestId",
        +        "disclaimerText",
        +        "fields"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "error": {
        +          "enum": [
        +            "MCP_BUSY",
        +            "MCP_RESPONSE_TOO_LARGE",
        +            "MCP_VOICE_GATE_FAILED",
        +            "MCP_TOOL_FAILED",
        +            "rate_limited",
        +            "processing_limit",
        +            "response_limit"
        +          ]
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "requestId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "error",
        +        "message",
        +        "requestId",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
    • Changedget_objective_conditions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "source": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "confidence": {
        +          "enum": [
        +            "full",
        +            "degraded",
        +            "unknown"
        +          ]
        +        },
        +        "contributesTo": {
        +          "items": {
        +            "enum": [
        +              "weather",
        +              "precip",
        +              "wind",
        +              "temperature",
        +              "snowpack",
        +              "avalanche",
        +              "road",
        +              "alerts",
        +              "air_quality",
        +              "other"
        +            ]
        +          },
        +          "type": "array"
        +        },
        +        "expectedFreshnessSeconds": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "fetchedAt": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "history24h": {
        +          "anyOf": [
        +            {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "bucketStart": {
        +                    "type": "string"
        +                  },
        +                  "status": {
        +                    "enum": [
        +                      "ok",
        +                      "down",
        +                      "degraded",
        +                      "nodata"
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "bucketStart",
        +                  "status"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "history7d": {
        +          "anyOf": [
        +            {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "bucketStart": {
        +                    "type": "string"
        +                  },
        +                  "status": {
        +                    "enum": [
        +                      "ok",
        +                      "down",
        +                      "degraded",
        +                      "nodata"
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "bucketStart",
        +                  "status"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "isStale": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "lastSuccessAt": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "ok": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "seasonalStatus": {
        +          "enum": [
        +            "active",
        +            "dormant"
        +          ]
        +        },
        +        "stations": {
        +          "anyOf": [
        +            {
        +              "items": {
        +                "$ref": "#/$defs/source"
        +              },
        +              "type": "array"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "status": {
        +          "enum": [
        +            "fresh",
        +            "stale",
        +            "long_stale",
        +            "down",
        +            null
        +          ]
        +        },
        +        "type": {
        +          "enum": [
        +            "weather",
        +            "avalanche",
        +            "road",
        +            "nps",
        +            "snow",
        +            "air",
        +            "other"
        +          ]
        +        },
        +        "upstreamIssuedAt": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "name",
        +        "type",
        +        "fetchedAt",
        +        "ok",
        +        "isStale",
        +        "lastSuccessAt",
        +        "expectedFreshnessSeconds",
        +        "upstreamIssuedAt",
        +        "history24h",
        +        "history7d",
        +        "status",
        +        "confidence",
        +        "contributesTo"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "oneOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "days": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "avalancheBasis": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "centerName": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "included": {
        +                    "type": "boolean"
        +                  },
        +                  "reason": {
        +                    "enum": [
        +                      "off_season",
        +                      "no_zone",
        +                      "not_yet_issued",
        +                      "expired",
        +                      "unavailable",
        +                      null
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "included",
        +                  "reason",
        +                  "centerName"
        +                ],
        +                "type": "object"
        +              },
        +              "avalancheDanger": {
        +                "enum": [
        +                  "low",
        +                  "moderate",
        +                  "considerable",
        +                  "high",
        +                  "extreme",
        +                  "no_data"
        +                ]
        +              },
        +              "condition": {
        +                "type": "string"
        +              },
        +              "date": {
        +                "type": "string"
        +              },
        +              "freezingLevelFt": {
        +                "type": "number"
        +              },
        +              "moonIllumination": {
        +                "type": "number"
        +              },
        +              "moonPhase": {
        +                "enum": [
        +                  "new",
        +                  "waxing_crescent",
        +                  "first_quarter",
        +                  "waxing_gibbous",
        +                  "full",
        +                  "waning_gibbous",
        +                  "last_quarter",
        +                  "waning_crescent"
        +                ]
        +              },
        +              "overallRating": {
        +                "enum": [
        +                  "excellent",
        +                  "good",
        +                  "marginal",
        +                  "poor",
        +                  "dangerous"
        +                ]
        +              },
        +              "precipChancePercent": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "provenance": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "weather": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "fetchedAt": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "reliability": {
        +                        "enum": [
        +                          "primary",
        +                          "secondary",
        +                          "supplementary"
        +                        ]
        +                      },
        +                      "sourceName": {
        +                        "type": "string"
        +                      },
        +                      "url": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "sourceName"
        +                    ],
        +                    "type": "object"
        +                  }
        +                },
        +                "required": [
        +                  "weather"
        +                ],
        +                "type": "object"
        +              },
        +              "referencePoint": {
        +                "const": "summit"
        +              },
        +              "snowInches": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "snowpackCondition": {
        +                "enum": [
        +                  "powder",
        +                  "packed_powder",
        +                  "wind_crust",
        +                  "sun_crust",
        +                  "corn",
        +                  "ice",
        +                  "wet_heavy",
        +                  "bare"
        +                ]
        +              },
        +              "summitTempHighF": {
        +                "type": "number"
        +              },
        +              "summitTempLowF": {
        +                "type": "number"
        +              },
        +              "sunrise": {
        +                "type": "string"
        +              },
        +              "sunriseAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "sunset": {
        +                "type": "string"
        +              },
        +              "sunsetAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windDirection": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windMaxMph": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "date",
        +              "overallRating",
        +              "summitTempLowF",
        +              "summitTempHighF",
        +              "windMaxMph",
        +              "windDirection",
        +              "precipChancePercent",
        +              "freezingLevelFt",
        +              "snowpackCondition",
        +              "sunrise",
        +              "sunset",
        +              "sunriseAt",
        +              "sunsetAt",
        +              "moonPhase",
        +              "moonIllumination",
        +              "provenance",
        +              "referencePoint",
        +              "condition",
        +              "snowInches"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "disclaimer": {
        +          "type": "string"
        +        },
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "objective": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "source": {
        +          "const": "ClimbCast"
        +        },
        +        "sourceUrl": {
        +          "type": "string"
        +        },
        +        "sources": {
        +          "items": {
        +            "$ref": "#/$defs/source"
        +          },
        +          "type": "array"
        +        },
        +        "timeZone": {
        +          "type": "string"
        +        },
        +        "updatedAt": {
        +          "type": "string"
        +        },
        +        "utcOffsetSeconds": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "source",
        +        "sourceUrl",
        +        "disclaimer",
        +        "objective",
        +        "updatedAt",
        +        "sources",
        +        "disclaimerText",
        +        "days"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "status": {
        +          "const": "not_found"
        +        },
        +        "suggestions": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "name": {
        +                "type": "string"
        +              },
        +              "slug": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "slug",
        +              "name"
        +            ],
        +            "type": "object"
        +          },
        +          "maxItems": 3,
        +          "type": "array"
        +        },
        +        "try": {
        +          "const": "search_objectives"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "message",
        +        "try",
        +        "suggestions",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "error": {
        +          "const": "invalid_input"
        +        },
        +        "fields": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "allowed": {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "field": {
        +                "type": "string"
        +              },
        +              "problem": {
        +                "enum": [
        +                  "required",
        +                  "type",
        +                  "enum",
        +                  "length",
        +                  "pattern",
        +                  "range",
        +                  "unexpected"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "field",
        +              "problem"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "requestId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "error",
        +        "message",
        +        "requestId",
        +        "disclaimerText",
        +        "fields"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "error": {
        +          "enum": [
        +            "MCP_BUSY",
        +            "MCP_RESPONSE_TOO_LARGE",
        +            "MCP_VOICE_GATE_FAILED",
        +            "MCP_TOOL_FAILED",
        +            "rate_limited",
        +            "processing_limit",
        +            "response_limit"
        +          ]
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "requestId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "error",
        +        "message",
        +        "requestId",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
    • Changedget_route_conditions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$defs": {
        +    "source": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "confidence": {
        +          "enum": [
        +            "full",
        +            "degraded",
        +            "unknown"
        +          ]
        +        },
        +        "contributesTo": {
        +          "items": {
        +            "enum": [
        +              "weather",
        +              "precip",
        +              "wind",
        +              "temperature",
        +              "snowpack",
        +              "avalanche",
        +              "road",
        +              "alerts",
        +              "air_quality",
        +              "other"
        +            ]
        +          },
        +          "type": "array"
        +        },
        +        "expectedFreshnessSeconds": {
        +          "type": [
        +            "number",
        +            "null"
        +          ]
        +        },
        +        "fetchedAt": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "history24h": {
        +          "anyOf": [
        +            {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "bucketStart": {
        +                    "type": "string"
        +                  },
        +                  "status": {
        +                    "enum": [
        +                      "ok",
        +                      "down",
        +                      "degraded",
        +                      "nodata"
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "bucketStart",
        +                  "status"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "history7d": {
        +          "anyOf": [
        +            {
        +              "items": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "bucketStart": {
        +                    "type": "string"
        +                  },
        +                  "status": {
        +                    "enum": [
        +                      "ok",
        +                      "down",
        +                      "degraded",
        +                      "nodata"
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "bucketStart",
        +                  "status"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "isStale": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "lastSuccessAt": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "ok": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "seasonalStatus": {
        +          "enum": [
        +            "active",
        +            "dormant"
        +          ]
        +        },
        +        "stations": {
        +          "anyOf": [
        +            {
        +              "items": {
        +                "$ref": "#/$defs/source"
        +              },
        +              "type": "array"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "status": {
        +          "enum": [
        +            "fresh",
        +            "stale",
        +            "long_stale",
        +            "down",
        +            null
        +          ]
        +        },
        +        "type": {
        +          "enum": [
        +            "weather",
        +            "avalanche",
        +            "road",
        +            "nps",
        +            "snow",
        +            "air",
        +            "other"
        +          ]
        +        },
        +        "upstreamIssuedAt": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "name",
        +        "type",
        +        "fetchedAt",
        +        "ok",
        +        "isStale",
        +        "lastSuccessAt",
        +        "expectedFreshnessSeconds",
        +        "upstreamIssuedAt",
        +        "history24h",
        +        "history7d",
        +        "status",
        +        "confidence",
        +        "contributesTo"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "oneOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "days": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "avalancheBasis": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "centerName": {
        +                    "type": [
        +                      "string",
        +                      "null"
        +                    ]
        +                  },
        +                  "included": {
        +                    "type": "boolean"
        +                  },
        +                  "reason": {
        +                    "enum": [
        +                      "off_season",
        +                      "no_zone",
        +                      "not_yet_issued",
        +                      "expired",
        +                      "unavailable",
        +                      null
        +                    ]
        +                  }
        +                },
        +                "required": [
        +                  "included",
        +                  "reason",
        +                  "centerName"
        +                ],
        +                "type": "object"
        +              },
        +              "avalancheDanger": {
        +                "enum": [
        +                  "low",
        +                  "moderate",
        +                  "considerable",
        +                  "high",
        +                  "extreme",
        +                  "no_data"
        +                ]
        +              },
        +              "cornHarvestWindow": {
        +                "anyOf": [
        +                  {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "status": {
        +                        "type": "string"
        +                      },
        +                      "window": {
        +                        "anyOf": [
        +                          {
        +                            "additionalProperties": false,
        +                            "properties": {
        +                              "end": {
        +                                "type": "string"
        +                              },
        +                              "start": {
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "start",
        +                              "end"
        +                            ],
        +                            "type": "object"
        +                          },
        +                          {
        +                            "type": "null"
        +                          }
        +                        ]
        +                      }
        +                    },
        +                    "required": [
        +                      "status",
        +                      "window"
        +                    ],
        +                    "type": "object"
        +                  },
        +                  {
        +                    "type": "null"
        +                  }
        +                ]
        +              },
        +              "date": {
        +                "type": "string"
        +              },
        +              "freezingLevelFt": {
        +                "type": "number"
        +              },
        +              "moonIllumination": {
        +                "type": "number"
        +              },
        +              "moonPhase": {
        +                "enum": [
        +                  "new",
        +                  "waxing_crescent",
        +                  "first_quarter",
        +                  "waxing_gibbous",
        +                  "full",
        +                  "waning_gibbous",
        +                  "last_quarter",
        +                  "waning_crescent"
        +                ]
        +              },
        +              "overallRating": {
        +                "enum": [
        +                  "excellent",
        +                  "good",
        +                  "marginal",
        +                  "poor",
        +                  "dangerous"
        +                ]
        +              },
        +              "precipChancePercent": {
        +                "type": [
        +                  "number",
        +                  "null"
        +                ]
        +              },
        +              "precipType": {
        +                "enum": [
        +                  "none",
        +                  "rain",
        +                  "snow",
        +                  "mixed",
        +                  "sleet"
        +                ]
        +              },
        +              "provenance": {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "weather": {
        +                    "additionalProperties": false,
        +                    "properties": {
        +                      "fetchedAt": {
        +                        "type": [
        +                          "string",
        +                          "null"
        +                        ]
        +                      },
        +                      "reliability": {
        +                        "enum": [
        +                          "primary",
        +                          "secondary",
        +                          "supplementary"
        +                        ]
        +                      },
        +                      "sourceName": {
        +                        "type": "string"
        +                      },
        +                      "url": {
        +                        "type": "string"
        +                      }
        +                    },
        +                    "required": [
        +                      "sourceName"
        +                    ],
        +                    "type": "object"
        +                  }
        +                },
        +                "required": [
        +                  "weather"
        +                ],
        +                "type": "object"
        +              },
        +              "referencePoint": {
        +                "const": "route-high-point"
        +              },
        +              "snowpackCondition": {
        +                "enum": [
        +                  "powder",
        +                  "packed_powder",
        +                  "wind_crust",
        +                  "sun_crust",
        +                  "corn",
        +                  "ice",
        +                  "wet_heavy",
        +                  "bare"
        +                ]
        +              },
        +              "summitTempHighF": {
        +                "type": "number"
        +              },
        +              "summitTempLowF": {
        +                "type": "number"
        +              },
        +              "sunrise": {
        +                "type": "string"
        +              },
        +              "sunriseAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "sunset": {
        +                "type": "string"
        +              },
        +              "sunsetAt": {
        +                "type": [
        +                  "string",
        +                  "null"
        +                ]
        +              },
        +              "windAvgMph": {
        +                "type": "number"
        +              },
        +              "windDirection": {
        +                "type": "string"
        +              },
        +              "windMaxMph": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "date",
        +              "overallRating",
        +              "summitTempLowF",
        +              "summitTempHighF",
        +              "windMaxMph",
        +              "windDirection",
        +              "precipChancePercent",
        +              "freezingLevelFt",
        +              "snowpackCondition",
        +              "avalancheDanger",
        +              "sunrise",
        +              "sunset",
        +              "sunriseAt",
        +              "sunsetAt",
        +              "moonPhase",
        +              "moonIllumination",
        +              "provenance",
        +              "referencePoint",
        +              "windAvgMph",
        +              "precipType"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "disclaimer": {
        +          "type": "string"
        +        },
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "objective": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "name": {
        +              "type": "string"
        +            },
        +            "slug": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "slug",
        +            "name"
        +          ],
        +          "type": "object"
        +        },
        +        "route": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "activityMode": {
        +              "enum": [
        +                "mountaineering",
        +                "skimo_splitboard",
        +                "rock_climbing",
        +                "trail_running",
        +                "mountain_biking",
        +                "snowmobiling",
        +                "ice_climbing"
        +              ]
        +            },
        +            "aspect": {
        +              "type": "string"
        +            },
        +            "highPointElevationFt": {
        +              "type": "number"
        +            },
        +            "id": {
        +              "type": "string"
        +            },
        +            "name": {
        +              "type": "string"
        +            },
        +            "supportedActivities": {
        +              "items": {
        +                "enum": [
        +                  "mountaineering",
        +                  "skimo_splitboard",
        +                  "rock_climbing",
        +                  "trail_running",
        +                  "mountain_biking",
        +                  "snowmobiling",
        +                  "ice_climbing"
        +                ]
        +              },
        +              "type": "array"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "name",
        +            "activityMode",
        +            "supportedActivities"
        +          ],
        +          "type": "object"
        +        },
        +        "source": {
        +          "const": "ClimbCast"
        +        },
        +        "sourceUrl": {
        +          "type": "string"
        +        },
        +        "sources": {
        +          "items": {
        +            "$ref": "#/$defs/source"
        +          },
        +          "type": "array"
        +        },
        +        "timeZone": {
        +          "type": "string"
        +        },
        +        "updatedAt": {
        +          "type": "string"
        +        },
        +        "utcOffsetSeconds": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "source",
        +        "sourceUrl",
        +        "disclaimer",
        +        "objective",
        +        "updatedAt",
        +        "sources",
        +        "disclaimerText",
        +        "route",
        +        "days"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "status": {
        +          "const": "not_found"
        +        },
        +        "suggestions": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "name": {
        +                "type": "string"
        +              },
        +              "slug": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "slug",
        +              "name"
        +            ],
        +            "type": "object"
        +          },
        +          "maxItems": 3,
        +          "type": "array"
        +        },
        +        "try": {
        +          "const": "search_objectives"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "message",
        +        "try",
        +        "suggestions",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "error": {
        +          "const": "invalid_input"
        +        },
        +        "fields": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "allowed": {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "field": {
        +                "type": "string"
        +              },
        +              "problem": {
        +                "enum": [
        +                  "required",
        +                  "type",
        +                  "enum",
        +                  "length",
        +                  "pattern",
        +                  "range",
        +                  "unexpected"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "field",
        +              "problem"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "requestId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "error",
        +        "message",
        +        "requestId",
        +        "disclaimerText",
        +        "fields"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "error": {
        +          "enum": [
        +            "MCP_BUSY",
        +            "MCP_RESPONSE_TOO_LARGE",
        +            "MCP_VOICE_GATE_FAILED",
        +            "MCP_TOOL_FAILED",
        +            "rate_limited",
        +            "processing_limit",
        +            "response_limit"
        +          ]
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "requestId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "error",
        +        "message",
        +        "requestId",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_objectives1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "oneOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "objectives": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "conditions_url": {
        +                "type": "string"
        +              },
        +              "elevation_ft": {
        +                "type": "number"
        +              },
        +              "lat": {
        +                "type": "number"
        +              },
        +              "lon": {
        +                "type": "number"
        +              },
        +              "name": {
        +                "type": "string"
        +              },
        +              "region": {
        +                "type": "string"
        +              },
        +              "routes": {
        +                "items": {
        +                  "additionalProperties": false,
        +                  "properties": {
        +                    "activity": {
        +                      "enum": [
        +                        "mountaineering",
        +                        "skimo_splitboard",
        +                        "rock_climbing"
        +                      ]
        +                    },
        +                    "id": {
        +                      "type": "string"
        +                    },
        +                    "name": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "id",
        +                    "name",
        +                    "activity"
        +                  ],
        +                  "type": "object"
        +                },
        +                "type": "array"
        +              },
        +              "slug": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "slug",
        +              "name",
        +              "elevation_ft",
        +              "region",
        +              "lat",
        +              "lon",
        +              "routes",
        +              "conditions_url"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "truncated": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "objectives",
        +        "truncated",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "error": {
        +          "const": "invalid_input"
        +        },
        +        "fields": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "allowed": {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              "field": {
        +                "type": "string"
        +              },
        +              "problem": {
        +                "enum": [
        +                  "required",
        +                  "type",
        +                  "enum",
        +                  "length",
        +                  "pattern",
        +                  "range",
        +                  "unexpected"
        +                ]
        +              }
        +            },
        +            "required": [
        +              "field",
        +              "problem"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "requestId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "error",
        +        "message",
        +        "requestId",
        +        "disclaimerText",
        +        "fields"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "disclaimerText": {
        +          "const": "This data is for informational purposes only. ClimbCast presents information, you manage risk. Ratings are decision-support heuristics, not advice. For any safety-critical decision, always consult the official source bulletin directly. Forecasts may contain errors and are not a substitute for sound human judgment. Weather and avalanche conditions can change rapidly and without warning. You are solely responsible for your decisions in the outdoors."
        +        },
        +        "error": {
        +          "enum": [
        +            "MCP_BUSY",
        +            "MCP_RESPONSE_TOO_LARGE",
        +            "MCP_VOICE_GATE_FAILED",
        +            "MCP_TOOL_FAILED",
        +            "rate_limited",
        +            "processing_limit",
        +            "response_limit"
        +          ]
        +        },
        +        "message": {
        +          "type": "string"
        +        },
        +        "requestId": {
        +          "type": [
        +            "string",
        +            "null"
        +          ]
        +        }
        +      },
        +      "required": [
        +        "error",
        +        "message",
        +        "requestId",
        +        "disclaimerText"
        +      ],
        +      "type": "object"
        +    }
        +  ],
        +  "type": "object"
        +}
  6. 1 tool update
    • Changedsearch_objectives3 fields changed
      • changedInput schema / properties / region / description
        Previous value: -"Optional state or province filter."New value: +"Optional state or province code or name: WA, Washington, OR, Oregon, BC, British Columbia, or B.C. Matching ignores case."
      • removedInput schema / properties / region / enum
        Removed value: -[
        -  "WA",
        -  "OR",
        -  "BC"
        -]
      • addedInput schema / properties / region / examples
        Added value: +[
        +  "WA",
        +  "OR",
        +  "BC",
        +  "Washington",
        +  "Oregon",
        +  "British Columbia",
        +  "B.C."
        +]
  7. 1 tool update
    • Changedsearch_objectives1 field changed
      • changedInput schema / properties / activity / enum
        Previous value: -[
        -  "mountaineering",
        -  "skimo_splitboard",
        -  "rock_climbing",
        -  "ice_climbing"
        -]New value: +[
        +  "mountaineering",
        +  "skimo_splitboard",
        +  "rock_climbing"
        +]
  8. 4 tool updates
    • First observedget_forecast_accuracy
    • First observedget_objective_conditions
    • First observedget_route_conditions
    • First observedsearch_objectives

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Live ski & snow data for AI agents: 14-day multi-model forecasts, powder rankings, resort guides, webcams, ski-pass intelligence, and avalanche/road safety across 500+ resorts. Hosted streamable-HTTP — no install, no auth.
    40
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides avalanche forecasts, danger ratings, and field observations for US avalanche centers, Canadian regions, and Quebec's Chic-Chocs via natural language queries.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to real-time and historical snow conditions, weather data, and snowpack analysis from over 800 SNOTEL stations across the western United States through the USDA Air and Water Database API.
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources