Files
weatherfeeder/docs/consumers/pkg-standards.md
Eric Rakestraw 8041f99782
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
Clean and update documentation
2026-06-11 10:00:15 -05:00

3.0 KiB

Package standards

Import Path

import "gitea.maximumdirect.net/ejr/weatherfeeder/standards"

Purpose

Package standards defines stable identifiers and shared weather constants used by weatherfeeder producers and Go consumers.

Use this package when switching on event schemas, comparing event kinds, or working with canonical WMO condition codes.

Event Kind Constants

Current event kind constants are:

Constant Value
KindObservation observation
KindForecast forecast
KindForecastDiscussion forecast_discussion
KindWeatherStory weather_story
KindAlert alert
KindOutlook outlook

These are plain string constants. Convert them at adapter boundaries when using feedkit's event.Kind type.

Canonical Schema Constants

Canonical schemas emitted after normalization:

Constant Value
SchemaWeatherObservationV1 weather.observation.v1
SchemaWeatherForecastV1 weather.forecast.v1
SchemaWeatherForecastDiscussionV1 weather.forecast_discussion.v1
SchemaWeatherStoryV1 weather.weather_story.v1
SchemaWeatherAlertV1 weather.alert.v1
SchemaWeatherOutlookV1 weather.outlook.v1

Raw Schema Constants

Raw source schemas emitted by current registered sources:

Constant Value
SchemaRawNWSObservationV1 raw.nws.observation.v1
SchemaRawOpenMeteoCurrentV1 raw.openmeteo.current.v1
SchemaRawOpenWeatherCurrentV1 raw.openweather.current.v1
SchemaRawNWSHourlyForecastV1 raw.nws.hourly.forecast.v1
SchemaRawNWSNarrativeForecastV1 raw.nws.narrative.forecast.v1
SchemaRawNWSForecastDiscussionV1 raw.nws.forecast_discussion.v1
SchemaRawNWSWeatherStoriesV1 raw.nws.weatherstories.v1
SchemaRawOpenMeteoHourlyForecastV1 raw.openmeteo.hourly.forecast.v1
SchemaRawNWSAlertsV1 raw.nws.alerts.v1
SchemaRawSPCConvectiveOutlookV1 raw.spc.convective_outlook.v1

Additional raw schema constant:

Constant Value
SchemaRawOpenWeatherHourlyForecastV1 raw.openweather.hourly.forecast.v1

SchemaRawOpenWeatherHourlyForecastV1 exists in code, but no current registered source emits it. Consumers should not expect that raw schema unless a later registered source documents it as part of the current event contract.

WMO Constants And Text

standards also defines the canonical WMOCode vocabulary and text helpers used by normalized observations and forecasts.

Consumer guidance:

  • Treat WMOUnknown as unknown condition data.
  • Observation conditionCode is required in the current event contract.
  • Forecast period conditionCode is optional because some forecast products do not provide a meaningful WMO condition.
  • Prefer WMO constants and helper functions from this package instead of duplicating code tables in consumers.

Boundaries

standards is provider-agnostic. Provider-specific parsing belongs in weatherfeeder internals, not in this package and not in consumers.