{
  "ok": true,
  "domains": {
    "atmosphere": {
      "schema": "openatmosphere.source-inventory/1.0",
      "domain": "atmosphere",
      "baseline": "OpenC5ISR-OpenAtmosphere-v1.0.1-DATA-INTEGRITY",
      "source_count": 59,
      "map_layer_count": 20,
      "summary_adapter_count": 19,
      "raster_layer_count": 14,
      "vector_layer_count": 6,
      "source_inventory_complete": true,
      "ui_assets_unchanged": [
        "app.css",
        "icon.svg",
        "manifest.webmanifest"
      ],
      "transport": {
        "backend": "lib/open-atmosphere/fetch-cache.js -> lib/openenvironment-transport.js -> authenticated OE /cache/fetch",
        "browser": "Existing same-origin /api/atmosphere APIs; external resourceUrl guard -> OE /cache/resource?domain=atmosphere&url=ENCODED",
        "model": "Cached GRIB2 bytes obtained via FetchCache; local tools/openatmosphere_gfs_profile.py accepts --input only",
        "fallback_to_provider": false,
        "local_cache_ttls_used_for_freshness": false,
        "central_freshness_headers": [
          "X-OpenEnvironment-Cache",
          "X-OpenEnvironment-Freshness",
          "X-OpenEnvironment-Fetch-Time",
          "X-OpenEnvironment-Last-Success-Time",
          "X-OpenEnvironment-Provider-Time"
        ]
      },
      "operating_area": {
        "source": "/api/environment/v1/operating-location",
        "default": {
          "location_id": "itacoatiara-am",
          "label": "Itacoatiara, Amazonas, Brazil",
          "latitude": -3.142778,
          "longitude": -58.443889,
          "radius_km": 100
        },
        "browser_geolocation": false
      },
      "documentation_checked_at": "2026-10-05",
      "documentation": {
        "nws": "https://www.weather.gov/documentation/services-web-api",
        "awc": "https://aviationweather.gov/data/api/",
        "met": "https://api.met.no/doc/TermsOfService",
        "gfs": "https://www.ncei.noaa.gov/products/weather-climate-models/global-forecast",
        "gibs": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
        "power": "https://power.larc.nasa.gov/docs/services/api/temporal/hourly/",
        "eonet": "https://eonet.gsfc.nasa.gov/docs/v3",
        "firms": "https://firms.modaps.eosdis.nasa.gov/api/area/"
      },
      "sources": [
        {
          "id": "br-inmet-observations",
          "provider": "INMET",
          "family": "WMO WIS2",
          "name": "Brazil automatic surface observations",
          "source_class": "operational",
          "authority": "INMET",
          "coverage": "Brazil",
          "cadence": "hourly",
          "adapter": "inmet-wis2",
          "endpoint": "https://wis2bra.inmet.gov.br/oapi/collections/urn:wmo:md:br-inmet:synop/items",
          "credential": "none",
          "capabilities": [
            "temperature",
            "humidity",
            "pressure",
            "wind",
            "rainfall"
          ],
          "status": "implemented",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "training_eligibility": "authentic station observations with per-field provenance"
        },
        {
          "id": "br-inmet-alerts",
          "provider": "INMET",
          "family": "Warnings",
          "name": "Brazil official weather warnings",
          "source_class": "operational",
          "authority": "INMET",
          "coverage": "Brazil",
          "cadence": "event-driven",
          "adapter": "inmet-alerts",
          "endpoint": "https://apiprevmet3.inmet.gov.br/avisos/ativos",
          "credential": "none",
          "capabilities": [
            "alerts",
            "warning-polygons"
          ],
          "status": "implemented",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "training_eligibility": "not observation training data"
        },
        {
          "id": "noaa-nws-points",
          "provider": "NOAA",
          "family": "NWS API",
          "name": "NWS point metadata and office/grid discovery",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and territories",
          "cadence": "request-time",
          "adapter": "nws-points",
          "endpoint": "https://api.weather.gov/points/{lat},{lon}",
          "credential": "none",
          "capabilities": [
            "coverage",
            "forecast-discovery",
            "station-discovery",
            "zone-discovery"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "metadata"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-http-cache-and-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "request-time",
            "legacy_cadence_verified": false,
            "documentation": "https://www.weather.gov/documentation/services-web-api",
            "note": "NWS expires content by its information lifecycle; office/grid and report times are discovered. No fixed freshness interval inferred."
          },
          "limitations": null
        },
        {
          "id": "noaa-nws-forecast",
          "provider": "NOAA",
          "family": "NWS API",
          "name": "NWS seven-day digital forecast",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and territories",
          "cadence": "hourly / office-defined",
          "adapter": "nws-discovered-url",
          "endpoint": "discovered from /points",
          "credential": "none",
          "capabilities": [
            "forecast",
            "temperature",
            "wind",
            "precipitation",
            "hazards"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-http-cache-and-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "hourly / office-defined",
            "legacy_cadence_verified": false,
            "documentation": "https://www.weather.gov/documentation/services-web-api",
            "note": "NWS expires content by its information lifecycle; office/grid and report times are discovered. No fixed freshness interval inferred."
          },
          "limitations": null
        },
        {
          "id": "noaa-nws-hourly",
          "provider": "NOAA",
          "family": "NWS API",
          "name": "NWS hourly forecast",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and territories",
          "cadence": "hourly / office-defined",
          "adapter": "nws-discovered-url",
          "endpoint": "discovered from /points",
          "credential": "none",
          "capabilities": [
            "hourly-forecast",
            "temperature",
            "wind",
            "precipitation",
            "sky-cover"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-http-cache-and-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "hourly / office-defined",
            "legacy_cadence_verified": false,
            "documentation": "https://www.weather.gov/documentation/services-web-api",
            "note": "NWS expires content by its information lifecycle; office/grid and report times are discovered. No fixed freshness interval inferred."
          },
          "limitations": null
        },
        {
          "id": "noaa-nws-grid",
          "provider": "NOAA",
          "family": "NWS API",
          "name": "NWS raw forecast grid data",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and territories",
          "cadence": "office-defined",
          "adapter": "nws-discovered-url",
          "endpoint": "discovered from /points",
          "credential": "none",
          "capabilities": [
            "grid-forecast",
            "quantitative-fields",
            "weather-elements"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-http-cache-and-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "office-defined",
            "legacy_cadence_verified": false,
            "documentation": "https://www.weather.gov/documentation/services-web-api",
            "note": "NWS expires content by its information lifecycle; office/grid and report times are discovered. No fixed freshness interval inferred."
          },
          "limitations": null
        },
        {
          "id": "noaa-nws-alerts",
          "provider": "NOAA",
          "family": "NWS API",
          "name": "NWS active alerts, watches and warnings",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and territories",
          "cadence": "event-driven",
          "adapter": "nws-alerts",
          "endpoint": "https://api.weather.gov/alerts/active?point={lat},{lon}",
          "credential": "none",
          "capabilities": [
            "alerts",
            "geometry",
            "severity",
            "urgency",
            "certainty"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "advisory"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-http-cache-and-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "event-driven",
            "legacy_cadence_verified": false,
            "documentation": "https://www.weather.gov/documentation/services-web-api",
            "note": "NWS expires content by its information lifecycle; office/grid and report times are discovered. No fixed freshness interval inferred."
          },
          "limitations": null
        },
        {
          "id": "noaa-nws-observations",
          "provider": "NOAA",
          "family": "NWS API",
          "name": "NWS surface observation stations and latest observations",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and territories",
          "cadence": "station-defined",
          "adapter": "nws-observations",
          "endpoint": "discovered observationStations URL",
          "credential": "none",
          "capabilities": [
            "observations",
            "temperature",
            "dewpoint",
            "wind",
            "pressure",
            "visibility",
            "clouds"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "only verified normalized observations, never raw advisory/model/imagery payloads",
          "schedule": {
            "mode": "provider-http-cache-and-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "station-defined",
            "legacy_cadence_verified": false,
            "documentation": "https://www.weather.gov/documentation/services-web-api",
            "note": "NWS expires content by its information lifecycle; office/grid and report times are discovered. No fixed freshness interval inferred."
          },
          "limitations": null
        },
        {
          "id": "noaa-nws-zones",
          "provider": "NOAA",
          "family": "NWS API",
          "name": "NWS forecast zones, county zones and fire zones",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and territories",
          "cadence": "provider-defined",
          "adapter": "nws-zone",
          "endpoint": "discovered from /points",
          "credential": "none",
          "capabilities": [
            "zones",
            "geometry",
            "office-context"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "metadata"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-http-cache-and-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "provider-defined",
            "legacy_cadence_verified": false,
            "documentation": "https://www.weather.gov/documentation/services-web-api",
            "note": "NWS expires content by its information lifecycle; office/grid and report times are discovered. No fixed freshness interval inferred."
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "met-no-locationforecast",
          "provider": "MET Norway",
          "family": "Locationforecast",
          "name": "Global location forecast",
          "source_class": "operational",
          "authority": "MET Norway Locationforecast / ECMWF",
          "coverage": "Worldwide",
          "cadence": "global model updated four times daily",
          "adapter": "met-no-locationforecast",
          "endpoint": "https://api.met.no/weatherapi/locationforecast/2.0/compact",
          "credential": "none",
          "capabilities": [
            "forecast",
            "temperature",
            "humidity",
            "wind",
            "pressure",
            "clouds",
            "precipitation"
          ],
          "status": "wired",
          "notes": "Credential-free global operational model forecast; server-side cache and identifying User-Agent required by provider.",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-expires-conditional-request",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "global model updated four times daily",
            "legacy_cadence_verified": false,
            "documentation": "https://api.met.no/doc/TermsOfService",
            "note": "Do not re-request before Expires; reuse Last-Modified verbatim for If-Modified-Since; coordinate precision at most four decimals. No fixed freshness interval inferred."
          },
          "limitations": null
        },
        {
          "id": "noaa-awc-metar",
          "provider": "NOAA",
          "family": "Aviation Weather Center",
          "name": "Worldwide METAR observations",
          "source_class": "operational",
          "authority": "NOAA/NWS Aviation Weather Center",
          "coverage": "Worldwide",
          "cadence": "typically hourly; cache updates each minute",
          "adapter": "awc-metar",
          "endpoint": "https://aviationweather.gov/api/data/metar",
          "credential": "none",
          "capabilities": [
            "aviation",
            "observations",
            "flight-category",
            "ceiling",
            "visibility",
            "wind"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "only verified normalized observations, never raw advisory/model/imagery payloads",
          "schedule": {
            "mode": "product-and-provider-cache",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "typically hourly; cache updates each minute",
            "legacy_cadence_verified": false,
            "documentation": "https://aviationweather.gov/data/api/",
            "note": "API response product timestamps govern data age. Published bulk-cache update periods describe delivery, not issuance of each report."
          },
          "limitations": null
        },
        {
          "id": "noaa-awc-taf",
          "provider": "NOAA",
          "family": "Aviation Weather Center",
          "name": "Worldwide terminal aerodrome forecasts",
          "source_class": "operational",
          "authority": "NOAA/NWS Aviation Weather Center",
          "coverage": "Worldwide",
          "cadence": "typically 6-hour issuance; cache updates every 10 minutes",
          "adapter": "awc-taf",
          "endpoint": "https://aviationweather.gov/api/data/taf",
          "credential": "none",
          "capabilities": [
            "aviation",
            "terminal-forecast",
            "raw-report"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "product-and-provider-cache",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "typically 6-hour issuance; cache updates every 10 minutes",
            "legacy_cadence_verified": false,
            "documentation": "https://aviationweather.gov/data/api/",
            "note": "API response product timestamps govern data age. Published bulk-cache update periods describe delivery, not issuance of each report."
          },
          "limitations": null
        },
        {
          "id": "noaa-awc-isigmet",
          "provider": "NOAA",
          "family": "Aviation Weather Center",
          "name": "Worldwide international SIGMETs",
          "source_class": "operational",
          "authority": "NOAA/NWS Aviation Weather Center",
          "coverage": "Worldwide",
          "cadence": "event-driven",
          "adapter": "awc-isigmet",
          "endpoint": "https://aviationweather.gov/api/data/isigmet",
          "credential": "none",
          "capabilities": [
            "aviation",
            "sigmet",
            "geometry",
            "turbulence",
            "icing",
            "convection",
            "volcanic-ash"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "advisory"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "product-and-provider-cache",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "event-driven",
            "legacy_cadence_verified": false,
            "documentation": "https://aviationweather.gov/data/api/",
            "note": "API response product timestamps govern data age. Published bulk-cache update periods describe delivery, not issuance of each report."
          },
          "limitations": null
        },
        {
          "id": "noaa-awc-airsigmet",
          "provider": "NOAA",
          "family": "Aviation Weather Center",
          "name": "U.S. AIRMET/SIGMET products",
          "source_class": "operational",
          "authority": "NOAA/NWS Aviation Weather Center",
          "coverage": "United States / Alaska",
          "cadence": "event-driven",
          "adapter": "awc-airsigmet",
          "endpoint": "https://aviationweather.gov/api/data/airsigmet",
          "credential": "none",
          "capabilities": [
            "aviation",
            "airmet",
            "sigmet",
            "geometry"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "advisory"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "product-and-provider-cache",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "event-driven",
            "legacy_cadence_verified": false,
            "documentation": "https://aviationweather.gov/data/api/",
            "note": "API response product timestamps govern data age. Published bulk-cache update periods describe delivery, not issuance of each report."
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-awc-pirep",
          "provider": "NOAA",
          "family": "Aviation Weather Center",
          "name": "Pilot and aircraft reports",
          "source_class": "operational",
          "authority": "NOAA/NWS Aviation Weather Center",
          "coverage": "Primarily United States and North Atlantic",
          "cadence": "event-driven",
          "adapter": "awc-pirep",
          "endpoint": "https://aviationweather.gov/api/data/pirep",
          "credential": "none",
          "capabilities": [
            "aviation",
            "turbulence",
            "icing",
            "clouds",
            "pilot-report"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "only verified normalized observations, never raw advisory/model/imagery payloads",
          "schedule": {
            "mode": "product-and-provider-cache",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "event-driven",
            "legacy_cadence_verified": false,
            "documentation": "https://aviationweather.gov/data/api/",
            "note": "API response product timestamps govern data age. Published bulk-cache update periods describe delivery, not issuance of each report."
          },
          "limitations": null
        },
        {
          "id": "noaa-awc-gairmet",
          "provider": "NOAA",
          "family": "Aviation Weather Center",
          "name": "Graphical AIRMETs",
          "source_class": "operational",
          "authority": "NOAA/NWS Aviation Weather Center",
          "coverage": "Contiguous United States",
          "cadence": "scheduled issuance",
          "adapter": "awc-gairmet",
          "endpoint": "https://aviationweather.gov/api/data/gairmet",
          "credential": "none",
          "capabilities": [
            "aviation",
            "advisory",
            "geometry",
            "icing",
            "turbulence",
            "ifr"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "advisory"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "product-and-provider-cache",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "scheduled issuance",
            "legacy_cadence_verified": false,
            "documentation": "https://aviationweather.gov/data/api/",
            "note": "API response product timestamps govern data age. Published bulk-cache update periods describe delivery, not issuance of each report."
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-awc-cwa",
          "provider": "NOAA",
          "family": "Aviation Weather Center",
          "name": "Center Weather Advisories",
          "source_class": "operational",
          "authority": "NOAA/NWS Aviation Weather Center",
          "coverage": "United States",
          "cadence": "event-driven",
          "adapter": "awc-cwa",
          "endpoint": "https://aviationweather.gov/api/data/cwa",
          "credential": "none",
          "capabilities": [
            "aviation",
            "advisory",
            "geometry"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "advisory"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "product-and-provider-cache",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "event-driven",
            "legacy_cadence_verified": false,
            "documentation": "https://aviationweather.gov/data/api/",
            "note": "API response product timestamps govern data age. Published bulk-cache update periods describe delivery, not issuance of each report."
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nowcoast-radar",
          "provider": "NOAA",
          "family": "nowCOAST",
          "name": "Time-enabled NEXRAD weather radar mosaic",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and adjacent waters",
          "cadence": "minutes",
          "adapter": "wms",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/observations/weather_radar/ows",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "radar",
            "precipitation"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=noaa-nexrad"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "arcgis-time-info",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "minutes",
            "legacy_cadence_verified": false,
            "metadata_url": "https://nowcoast.noaa.gov/geoserver/observations/weather_radar/ows?f=pjson",
            "note": "Read timeInfo/timeExtent and response headers; service names and old TTLs do not prove current availability or report freshness."
          },
          "limitations": null
        },
        {
          "id": "noaa-nowcoast-short-warnings",
          "provider": "NOAA",
          "family": "nowCOAST",
          "name": "Short-duration weather and hydrologic warnings",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and adjacent waters",
          "cadence": "event-driven",
          "adapter": "wms",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/ows",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "warnings",
            "geometry"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=noaa-short-warnings"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "arcgis-time-info",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "event-driven",
            "legacy_cadence_verified": false,
            "metadata_url": "https://nowcoast.noaa.gov/geoserver/ows?f=pjson",
            "note": "Read timeInfo/timeExtent and response headers; service names and old TTLs do not prove current availability or report freshness."
          },
          "limitations": null
        },
        {
          "id": "noaa-nowcoast-long-hazards",
          "provider": "NOAA",
          "family": "nowCOAST",
          "name": "Long-duration weather, ocean and hydrologic hazards",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States and adjacent waters",
          "cadence": "event-driven",
          "adapter": "wms",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/ows",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "hazards",
            "geometry"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=noaa-long-hazards"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "arcgis-time-info",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "event-driven",
            "legacy_cadence_verified": false,
            "metadata_url": "https://nowcoast.noaa.gov/geoserver/ows?f=pjson",
            "note": "Read timeInfo/timeExtent and response headers; service names and old TTLs do not prove current availability or report freshness."
          },
          "limitations": null
        },
        {
          "id": "noaa-nesdis-goes-east",
          "provider": "NOAA",
          "family": "NESDIS / STAR",
          "name": "GOES-East full-disk and regional imagery",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "Americas and Atlantic",
          "cadence": "minutes",
          "adapter": "goes-image-catalog",
          "endpoint": "https://www.star.nesdis.noaa.gov/GOES/",
          "credential": "none",
          "capabilities": [
            "imagery",
            "geocolor",
            "infrared",
            "water-vapor",
            "clouds"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "minutes",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nesdis-goes-west",
          "provider": "NOAA",
          "family": "NESDIS / STAR",
          "name": "GOES-West full-disk and regional imagery",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "Americas and Pacific",
          "cadence": "minutes",
          "adapter": "goes-image-catalog",
          "endpoint": "https://www.star.nesdis.noaa.gov/GOES/",
          "credential": "none",
          "capabilities": [
            "imagery",
            "geocolor",
            "infrared",
            "water-vapor",
            "clouds"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "minutes",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-ncei-cdo",
          "provider": "NOAA",
          "family": "NCEI",
          "name": "Climate Data Online Web Services",
          "source_class": "archive",
          "authority": "NOAA",
          "coverage": "Global / dataset-dependent",
          "cadence": "archive updates",
          "adapter": "ncei-cdo",
          "endpoint": "https://www.ncei.noaa.gov/cdo-web/api/v2",
          "credential": "NCEI_TOKEN",
          "capabilities": [
            "climate",
            "stations",
            "historical-observations"
          ],
          "status": "credential-gated",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "archive updates",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-ncei-access",
          "provider": "NOAA",
          "family": "NCEI",
          "name": "Access Data Service dataset subsetting",
          "source_class": "archive",
          "authority": "NOAA",
          "coverage": "Global / dataset-dependent",
          "cadence": "archive updates",
          "adapter": "ncei-access",
          "endpoint": "https://www.ncei.noaa.gov/access/services/data/v1",
          "credential": "none",
          "capabilities": [
            "archive",
            "subset",
            "csv",
            "json",
            "netcdf",
            "pdf"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "archive updates",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nomads-gfs",
          "provider": "NOAA",
          "family": "NCEP NOMADS",
          "name": "Global Forecast System 0.25-degree model",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "Global",
          "cadence": "four cycles daily",
          "adapter": "nomads-grib-filter",
          "endpoint": "https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p25.pl",
          "credential": "none",
          "capabilities": [
            "forecast-model",
            "vertical-profile",
            "wind",
            "temperature",
            "humidity",
            "pressure",
            "clouds",
            "precipitation"
          ],
          "status": "wired",
          "notes": "GRIB2 is decoded locally with wgrib2 when model downloads are enabled.",
          "implemented": true,
          "implementation": [
            "optional-local-grib-decoder"
          ],
          "local_endpoints": [
            "/api/atmosphere/models/gfs/plan",
            "/api/atmosphere/models/gfs/profile"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "analysis",
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "documented-model-cycle",
            "publication_interval_seconds": 21600,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "four cycles daily",
            "legacy_cadence_verified": false,
            "documentation": "https://www.ncei.noaa.gov/products/weather-climate-models/global-forecast",
            "cycle_utc_hours": [
              0,
              6,
              12,
              18
            ],
            "note": "Four cycles/day is model issuance cadence; lead time and valid_time remain separate. The existing candidate cycle plan is not proof the provider has published it."
          },
          "limitations": "Requires opt-in and installed wgrib2; decoder has no network path."
        },
        {
          "id": "noaa-nomads-gefs",
          "provider": "NOAA",
          "family": "NCEP NOMADS",
          "name": "Global Ensemble Forecast System",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "Global",
          "cadence": "four cycles daily",
          "adapter": "nomads-grib-filter",
          "endpoint": "https://nomads.ncep.noaa.gov/",
          "credential": "none",
          "capabilities": [
            "ensemble",
            "uncertainty",
            "forecast-model"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "four cycles daily",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nomads-hrrr",
          "provider": "NOAA",
          "family": "NCEP NOMADS",
          "name": "High-Resolution Rapid Refresh",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "CONUS / Alaska variants",
          "cadence": "hourly",
          "adapter": "nomads-grib-filter",
          "endpoint": "https://nomads.ncep.noaa.gov/",
          "credential": "none",
          "capabilities": [
            "high-resolution-forecast",
            "convection",
            "smoke",
            "aviation"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "hourly",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nomads-rap",
          "provider": "NOAA",
          "family": "NCEP NOMADS",
          "name": "Rapid Refresh",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "North America / regional variants",
          "cadence": "hourly",
          "adapter": "nomads-grib-filter",
          "endpoint": "https://nomads.ncep.noaa.gov/",
          "credential": "none",
          "capabilities": [
            "forecast-model",
            "aviation",
            "convection"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "hourly",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nomads-nbm",
          "provider": "NOAA",
          "family": "NCEP NOMADS",
          "name": "National Blend of Models",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States",
          "cadence": "hourly",
          "adapter": "nomads-grib-filter",
          "endpoint": "https://nomads.ncep.noaa.gov/",
          "credential": "none",
          "capabilities": [
            "blended-forecast",
            "probabilistic-guidance"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "hourly",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nomads-rtma",
          "provider": "NOAA",
          "family": "NCEP NOMADS",
          "name": "Real-Time Mesoscale Analysis",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States regional domains",
          "cadence": "hourly / rapid update",
          "adapter": "nomads-grib-filter",
          "endpoint": "https://nomads.ncep.noaa.gov/",
          "credential": "none",
          "capabilities": [
            "analysis",
            "surface-weather",
            "verification"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "analysis"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "hourly / rapid update",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nomads-aqm",
          "provider": "NOAA",
          "family": "NCEP NOMADS",
          "name": "Air Quality Model ozone and smoke guidance",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States",
          "cadence": "twice daily / product-dependent",
          "adapter": "nomads-grib-filter",
          "endpoint": "https://nomads.ncep.noaa.gov/",
          "credential": "none",
          "capabilities": [
            "air-quality",
            "ozone",
            "smoke"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "twice daily / product-dependent",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nomads-hysplit",
          "provider": "NOAA",
          "family": "NCEP / ARL",
          "name": "HYSPLIT atmospheric transport and dispersion",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "Global / run-dependent",
          "cadence": "model-driven",
          "adapter": "hysplit-local",
          "endpoint": "https://www.ready.noaa.gov/HYSPLIT.php",
          "credential": "none",
          "capabilities": [
            "dispersion",
            "trajectory",
            "plume",
            "CBRN-support"
          ],
          "status": "optional-local-model",
          "notes": "OpenAtmosphere reserves a local-agent adapter; operational use requires a locally installed HYSPLIT workflow and approved data.",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "model-driven",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-nhc-storms",
          "provider": "NOAA",
          "family": "National Hurricane Center",
          "name": "Active tropical cyclone status and GIS products",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "Atlantic, Eastern and Central Pacific",
          "cadence": "advisory cycle",
          "adapter": "nhc-current-storms",
          "endpoint": "https://www.nhc.noaa.gov/CurrentStorms.json",
          "credential": "none",
          "capabilities": [
            "tropical-cyclone",
            "track",
            "advisory",
            "gis"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "event"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "advisory cycle",
            "legacy_cadence_verified": false
          },
          "limitations": null
        },
        {
          "id": "noaa-spc-outlooks",
          "provider": "NOAA",
          "family": "Storm Prediction Center",
          "name": "Convective outlooks, watches and mesoscale discussions",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States",
          "cadence": "product-dependent",
          "adapter": "spc-product-catalog",
          "endpoint": "https://www.spc.noaa.gov/products/",
          "credential": "none",
          "capabilities": [
            "severe-convection",
            "tornado",
            "hail",
            "wind",
            "fire-weather"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "product-dependent",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-wpc-qpf",
          "provider": "NOAA",
          "family": "Weather Prediction Center",
          "name": "Quantitative precipitation forecasts and surface analyses",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States / North America",
          "cadence": "product-dependent",
          "adapter": "wpc-product-catalog",
          "endpoint": "https://www.wpc.ncep.noaa.gov/qpf/",
          "credential": "none",
          "capabilities": [
            "qpf",
            "excessive-rainfall",
            "winter-weather",
            "surface-analysis"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast",
            "analysis"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "product-dependent",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-cpc-outlooks",
          "provider": "NOAA",
          "family": "Climate Prediction Center",
          "name": "Hazards, drought and extended-range climate outlooks",
          "source_class": "outlook",
          "authority": "NOAA",
          "coverage": "United States / global products",
          "cadence": "daily to seasonal",
          "adapter": "cpc-product-catalog",
          "endpoint": "https://www.cpc.ncep.noaa.gov/",
          "credential": "none",
          "capabilities": [
            "extended-outlook",
            "temperature",
            "precipitation",
            "drought",
            "hazards"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "forecast"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "daily to seasonal",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "noaa-mrms",
          "provider": "NOAA",
          "family": "NSSL / NCEP",
          "name": "Multi-Radar Multi-Sensor quantitative precipitation products",
          "source_class": "operational",
          "authority": "NOAA",
          "coverage": "United States",
          "cadence": "minutes",
          "adapter": "mrms-product-catalog",
          "endpoint": "https://mrms.ncep.noaa.gov/",
          "credential": "none",
          "capabilities": [
            "radar",
            "qpe",
            "precipitation-type",
            "severe-weather"
          ],
          "status": "catalog-wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "minutes",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-gibs-wms",
          "provider": "NASA",
          "family": "Earthdata GIBS",
          "name": "Global Imagery Browse Services WMS/WMTS",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "layer-dependent",
          "adapter": "gibs-wms",
          "endpoint": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "imagery",
            "time-enabled",
            "wms",
            "wmts"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-blue-marble"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "layer-dependent",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-worldview",
          "provider": "NASA",
          "family": "Earthdata Worldview",
          "name": "Interactive Earth science imagery and layer catalog",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "layer-dependent",
          "adapter": "worldview-catalog",
          "endpoint": "https://worldview.earthdata.nasa.gov/",
          "credential": "none",
          "capabilities": [
            "imagery-catalog",
            "layer-discovery",
            "events"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "metadata"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "layer-dependent",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-modis-terra",
          "provider": "NASA",
          "family": "MODIS / GIBS",
          "name": "Terra corrected-reflectance true color",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "daily / near-real-time",
          "adapter": "gibs-wms",
          "endpoint": "MODIS_Terra_CorrectedReflectance_TrueColor",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "true-color",
            "clouds",
            "smoke",
            "dust"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-modis-terra-truecolor"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "daily / near-real-time",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-modis-aqua",
          "provider": "NASA",
          "family": "MODIS / GIBS",
          "name": "Aqua corrected-reflectance true color",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "daily / near-real-time",
          "adapter": "gibs-wms",
          "endpoint": "MODIS_Aqua_CorrectedReflectance_TrueColor",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "true-color",
            "clouds",
            "smoke",
            "dust"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-modis-aqua-truecolor"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "daily / near-real-time",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-viirs-snpp",
          "provider": "NASA",
          "family": "VIIRS / GIBS",
          "name": "Suomi-NPP corrected-reflectance true color",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "daily / near-real-time",
          "adapter": "gibs-wms",
          "endpoint": "VIIRS_SNPP_CorrectedReflectance_TrueColor",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "true-color",
            "clouds",
            "smoke",
            "fires"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-viirs-snpp-truecolor"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "daily / near-real-time",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-viirs-noaa20",
          "provider": "NASA",
          "family": "VIIRS / GIBS",
          "name": "NOAA-20 corrected-reflectance true color",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "daily / near-real-time",
          "adapter": "gibs-wms",
          "endpoint": "VIIRS_NOAA20_CorrectedReflectance_TrueColor",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "true-color",
            "clouds",
            "smoke",
            "fires"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-viirs-noaa20-truecolor"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "daily / near-real-time",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-viirs-noaa21",
          "provider": "NASA",
          "family": "VIIRS / GIBS",
          "name": "NOAA-21 corrected-reflectance true color",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "daily / near-real-time",
          "adapter": "gibs-wms",
          "endpoint": "VIIRS_NOAA21_CorrectedReflectance_TrueColor",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "true-color",
            "clouds",
            "smoke",
            "fires"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-viirs-noaa21-truecolor"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "daily / near-real-time",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-gibs-goes-east",
          "provider": "NASA",
          "family": "GIBS geostationary",
          "name": "GOES-East GeoColor and clean infrared",
          "source_class": "operational",
          "authority": "NASA EOSDIS / NOAA",
          "coverage": "Americas and Atlantic",
          "cadence": "minutes",
          "adapter": "gibs-wms",
          "endpoint": "GOES-East_ABI_GeoColor / GOES-East_ABI_Band13_Clean_Infrared",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "geocolor",
            "infrared",
            "clouds"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-goes-east-geocolor",
            "/api/atmosphere/map/render?layer=nasa-goes-east-ir"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "minutes",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-imerg",
          "provider": "NASA",
          "family": "GPM / IMERG",
          "name": "Integrated Multi-satellitE Retrievals precipitation",
          "source_class": "operational",
          "authority": "NASA GPM / EOSDIS",
          "coverage": "Global",
          "cadence": "30-minute / product-dependent",
          "adapter": "gibs-wms",
          "endpoint": "IMERG_Precipitation_Rate_30min",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "precipitation",
            "satellite-estimate"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-imerg-precipitation"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "30-minute / product-dependent",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-omi-aerosol",
          "provider": "NASA",
          "family": "NOAA-20 OMPS / GIBS",
          "name": "OMPS ultraviolet aerosol index (replaces blank OMI)",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "daily",
          "adapter": "gibs-wms",
          "endpoint": "OMPS_NOAA20_NadirMapper_AerosolIndex_380",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "aerosol",
            "smoke",
            "dust",
            "volcanic-ash"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-omi-aerosol"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "daily",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-thermal-anomalies",
          "provider": "NASA",
          "family": "MODIS/VIIRS / GIBS",
          "name": "Satellite thermal anomalies",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "near-real-time",
          "adapter": "gibs-wms",
          "endpoint": "MODIS_Combined_Thermal_Anomalies_All",
          "credential": "none",
          "capabilities": [
            "map-layer",
            "fire",
            "thermal-anomaly"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "raster-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/map/render?layer=nasa-thermal-anomalies"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "imagery"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "layer-capabilities",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "near-real-time",
            "legacy_cadence_verified": false,
            "documentation": "https://nasa-gibs.github.io/gibs-api-docs/available-visualizations/",
            "metadata_url": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities&version=1.1.1",
            "note": "Read per-layer temporal period and available time extent from provider metadata. NRT latency is not a guaranteed per-layer update cadence."
          },
          "limitations": null
        },
        {
          "id": "nasa-power-hourly",
          "provider": "NASA",
          "family": "POWER",
          "name": "Hourly analysis-ready meteorology and solar data",
          "source_class": "analysis-archive",
          "authority": "NASA POWER / LaRC",
          "coverage": "Global point",
          "cadence": "dataset-dependent with latency",
          "adapter": "nasa-power-hourly",
          "endpoint": "https://power.larc.nasa.gov/api/temporal/hourly/point",
          "credential": "none",
          "capabilities": [
            "historical-context",
            "temperature",
            "humidity",
            "pressure",
            "wind",
            "precipitation",
            "cloud-cover",
            "solar"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "analysis"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "archive-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "dataset-dependent with latency",
            "legacy_cadence_verified": false,
            "documentation": "https://power.larc.nasa.gov/docs/services/api/temporal/hourly/",
            "note": "Hourly describes temporal averaging, not hourly publication. Preserve hourly analysis and UTC timestamp; no forecast or observed promotion."
          },
          "limitations": null
        },
        {
          "id": "nasa-power-daily",
          "provider": "NASA",
          "family": "POWER",
          "name": "Daily and climatological meteorology and solar data",
          "source_class": "analysis-archive",
          "authority": "NASA POWER / LaRC",
          "coverage": "Global point and regional",
          "cadence": "daily / climatology",
          "adapter": "nasa-power-daily",
          "endpoint": "https://power.larc.nasa.gov/api/temporal/daily/point",
          "credential": "none",
          "capabilities": [
            "climatology",
            "daily-history",
            "mission-planning"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "analysis"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "archive-product-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "daily / climatology",
            "legacy_cadence_verified": false,
            "documentation": "https://power.larc.nasa.gov/docs/services/api/temporal/hourly/",
            "note": "Hourly describes temporal averaging, not hourly publication. Preserve hourly analysis and UTC timestamp; no forecast or observed promotion."
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-eonet",
          "provider": "NASA",
          "family": "EONET",
          "name": "Earth Observatory Natural Event Tracker",
          "source_class": "operational",
          "authority": "NASA EOSDIS",
          "coverage": "Global",
          "cadence": "event-driven",
          "adapter": "nasa-eonet-v3",
          "endpoint": "https://eonet.gsfc.nasa.gov/api/v3/events",
          "credential": "none",
          "capabilities": [
            "events",
            "wildfires",
            "severe-storms",
            "volcanoes",
            "dust-haze",
            "geometry"
          ],
          "status": "wired",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "event"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "event-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "event-driven",
            "legacy_cadence_verified": false,
            "documentation": "https://eonet.gsfc.nasa.gov/docs/v3",
            "note": "Event geometry timestamps refer to event context; midnight may mean day precision. No fixed release cadence claimed."
          },
          "limitations": null
        },
        {
          "id": "nasa-firms",
          "provider": "NASA",
          "family": "FIRMS",
          "name": "Near-real-time MODIS, VIIRS and geostationary active-fire detections",
          "source_class": "operational",
          "authority": "NASA FIRMS / EOSDIS",
          "coverage": "Global",
          "cadence": "near-real-time / platform-dependent",
          "adapter": "nasa-firms-area",
          "endpoint": "https://firms.modaps.eosdis.nasa.gov/api/area/csv",
          "credential": "NASA_FIRMS_MAP_KEY",
          "capabilities": [
            "fire",
            "thermal-anomaly",
            "csv",
            "map-points"
          ],
          "status": "credential-gated",
          "notes": "",
          "implemented": true,
          "implementation": [
            "summary-adapter"
          ],
          "local_endpoints": [
            "/api/atmosphere/summary"
          ],
          "provider_requests": "OpenEnvironment cache transport only",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "only verified normalized observations, never raw advisory/model/imagery payloads",
          "schedule": {
            "mode": "platform-acquisition-metadata",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "near-real-time / platform-dependent",
            "legacy_cadence_verified": false,
            "documentation": "https://firms.modaps.eosdis.nasa.gov/api/area/",
            "note": "Use acquisition date/time, satellite and product processing tier. Overpass latency and replacement of RT/URT by NRT are not a fixed cadence."
          },
          "limitations": "Requires NASA_FIRMS_MAP_KEY configured server-side; key travels only through authenticated central fetch identity."
        },
        {
          "id": "nasa-cmr",
          "provider": "NASA",
          "family": "Common Metadata Repository",
          "name": "Earthdata collection and granule discovery",
          "source_class": "catalog",
          "authority": "NASA EOSDIS",
          "coverage": "Global metadata",
          "cadence": "catalog updates",
          "adapter": "nasa-cmr",
          "endpoint": "https://cmr.earthdata.nasa.gov/search",
          "credential": "none",
          "capabilities": [
            "catalog",
            "collection-discovery",
            "granule-discovery",
            "atmosphere"
          ],
          "status": "wired",
          "notes": "",
          "implemented": false,
          "implementation": [
            "catalog-or-discovery-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "metadata"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "catalog updates",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-merra2",
          "provider": "NASA",
          "family": "MERRA-2",
          "name": "Modern-Era Retrospective analysis for Research and Applications",
          "source_class": "science-archive",
          "authority": "NASA GMAO / GES DISC",
          "coverage": "Global",
          "cadence": "archive / product-dependent",
          "adapter": "earthdata-auth",
          "endpoint": "NASA GES DISC / Earthdata",
          "credential": "EARTHDATA_BEARER_TOKEN",
          "capabilities": [
            "reanalysis",
            "aerosol",
            "wind",
            "temperature",
            "humidity",
            "vertical-profile"
          ],
          "status": "credential-gated",
          "notes": "",
          "implemented": false,
          "implementation": [
            "credential-catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "analysis"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "archive / product-dependent",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-tempo",
          "provider": "NASA",
          "family": "TEMPO",
          "name": "Hourly geostationary atmospheric composition over North America",
          "source_class": "science-product",
          "authority": "NASA / Smithsonian Astrophysical Observatory",
          "coverage": "North America",
          "cadence": "hourly / product-dependent",
          "adapter": "cmr-earthdata",
          "endpoint": "NASA Earthdata",
          "credential": "EARTHDATA_BEARER_TOKEN",
          "capabilities": [
            "air-quality",
            "nitrogen-dioxide",
            "ozone",
            "formaldehyde",
            "aerosol"
          ],
          "status": "credential-gated",
          "notes": "",
          "implemented": false,
          "implementation": [
            "credential-catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "hourly / product-dependent",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-airs",
          "provider": "NASA",
          "family": "AIRS",
          "name": "Atmospheric Infrared Sounder profiles and cloud products",
          "source_class": "science-archive",
          "authority": "NASA JPL / EOSDIS",
          "coverage": "Global",
          "cadence": "orbital / archive",
          "adapter": "cmr-earthdata",
          "endpoint": "NASA Earthdata",
          "credential": "EARTHDATA_BEARER_TOKEN",
          "capabilities": [
            "vertical-profile",
            "temperature",
            "humidity",
            "clouds",
            "trace-gases"
          ],
          "status": "credential-gated",
          "notes": "",
          "implemented": false,
          "implementation": [
            "credential-catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "orbital / archive",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-calipso",
          "provider": "NASA",
          "family": "CALIPSO",
          "name": "Cloud-Aerosol Lidar vertical structure",
          "source_class": "science-archive",
          "authority": "NASA / CNES / EOSDIS",
          "coverage": "Global orbital swath",
          "cadence": "archive",
          "adapter": "cmr-earthdata",
          "endpoint": "NASA Earthdata",
          "credential": "EARTHDATA_BEARER_TOKEN",
          "capabilities": [
            "aerosol",
            "clouds",
            "vertical-profile",
            "lidar"
          ],
          "status": "credential-gated",
          "notes": "",
          "implemented": false,
          "implementation": [
            "credential-catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "archive",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-ceres",
          "provider": "NASA",
          "family": "CERES",
          "name": "Clouds and Earth radiant energy system products",
          "source_class": "science-archive",
          "authority": "NASA Langley / EOSDIS",
          "coverage": "Global",
          "cadence": "archive / product-dependent",
          "adapter": "cmr-earthdata",
          "endpoint": "NASA Earthdata",
          "credential": "EARTHDATA_BEARER_TOKEN",
          "capabilities": [
            "clouds",
            "radiation",
            "energy-budget"
          ],
          "status": "credential-gated",
          "notes": "",
          "implemented": false,
          "implementation": [
            "credential-catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "archive / product-dependent",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        },
        {
          "id": "nasa-gpm",
          "provider": "NASA",
          "family": "Global Precipitation Measurement",
          "name": "GPM mission precipitation products beyond IMERG browse layers",
          "source_class": "science-product",
          "authority": "NASA / JAXA / EOSDIS",
          "coverage": "Global",
          "cadence": "near-real-time and research products",
          "adapter": "cmr-earthdata",
          "endpoint": "NASA Earthdata",
          "credential": "EARTHDATA_BEARER_TOKEN",
          "capabilities": [
            "precipitation",
            "radar",
            "microwave"
          ],
          "status": "credential-gated",
          "notes": "",
          "implemented": false,
          "implementation": [
            "credential-catalog-only"
          ],
          "local_endpoints": [],
          "provider_requests": "none in original module; adapter name is a catalog registration",
          "data_kinds": [
            "observed"
          ],
          "training_eligibility": "not observation training data",
          "schedule": {
            "mode": "provider-metadata-or-unknown",
            "publication_interval_seconds": null,
            "metadata_fields": [
              "Cache-Control",
              "Expires",
              "ETag",
              "Last-Modified"
            ],
            "freshness_requires": "explicit provider report time plus documented or observed publication interval; transport cache hit alone is not current data",
            "legacy_catalog_cadence": "near-real-time and research products",
            "legacy_cadence_verified": false
          },
          "limitations": "Catalog entry retained exactly; no operational fetch or scientific decoding adapter is claimed."
        }
      ],
      "map_layers": [
        {
          "id": "br-inmet-warnings",
          "provider": "INMET",
          "group": "Vector overlays",
          "name": "INMET Brazil weather warnings",
          "description": "",
          "render_type": "vector-alerts",
          "source_id": "br-inmet-alerts",
          "layer_name": null,
          "service_url": null,
          "coverage": "Brazil",
          "default_on": true,
          "base_layer": false,
          "opacity": 0.85,
          "time_mode": "latest",
          "legend": null,
          "credential": "none"
        },
        {
          "id": "br-inmet-stations",
          "provider": "INMET",
          "group": "Vector overlays",
          "name": "INMET surface observations",
          "description": "",
          "render_type": "vector-stations",
          "source_id": "br-inmet-observations",
          "layer_name": null,
          "service_url": null,
          "coverage": "Brazil",
          "default_on": true,
          "base_layer": false,
          "opacity": 1,
          "time_mode": "latest",
          "legend": null,
          "credential": "none"
        },
        {
          "id": "nasa-blue-marble",
          "provider": "NASA",
          "group": "Base maps",
          "name": "NASA Blue Marble",
          "description": "Cloud-free NASA Earth mosaic.",
          "render_type": "gibs-wms",
          "source_id": "nasa-gibs-wms",
          "layer_name": "BlueMarble_NextGeneration",
          "service_url": null,
          "coverage": "global",
          "default_on": true,
          "base_layer": true,
          "opacity": 1,
          "time_mode": "none",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-blue-marble",
          "schedule_source_id": "nasa-gibs-wms",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-modis-terra-truecolor",
          "provider": "NASA",
          "group": "Satellite imagery",
          "name": "MODIS Terra true color",
          "description": "Daily corrected-reflectance imagery.",
          "render_type": "gibs-wms",
          "source_id": "nasa-modis-terra",
          "layer_name": "MODIS_Terra_CorrectedReflectance_TrueColor",
          "service_url": null,
          "coverage": "global",
          "default_on": true,
          "base_layer": false,
          "opacity": 0.76,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-modis-terra-truecolor",
          "schedule_source_id": "nasa-modis-terra",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-modis-aqua-truecolor",
          "provider": "NASA",
          "group": "Satellite imagery",
          "name": "MODIS Aqua true color",
          "description": "Daily corrected-reflectance imagery.",
          "render_type": "gibs-wms",
          "source_id": "nasa-modis-aqua",
          "layer_name": "MODIS_Aqua_CorrectedReflectance_TrueColor",
          "service_url": null,
          "coverage": "global",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.75,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-modis-aqua-truecolor",
          "schedule_source_id": "nasa-modis-aqua",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-viirs-snpp-truecolor",
          "provider": "NASA",
          "group": "Satellite imagery",
          "name": "VIIRS Suomi-NPP true color",
          "description": "High-resolution corrected-reflectance imagery.",
          "render_type": "gibs-wms",
          "source_id": "nasa-viirs-snpp",
          "layer_name": "VIIRS_SNPP_CorrectedReflectance_TrueColor",
          "service_url": null,
          "coverage": "global",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.78,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-viirs-snpp-truecolor",
          "schedule_source_id": "nasa-viirs-snpp",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-viirs-noaa20-truecolor",
          "provider": "NASA",
          "group": "Satellite imagery",
          "name": "VIIRS NOAA-20 true color",
          "description": "",
          "render_type": "gibs-wms",
          "source_id": "nasa-viirs-noaa20",
          "layer_name": "VIIRS_NOAA20_CorrectedReflectance_TrueColor",
          "service_url": null,
          "coverage": "global",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.78,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-viirs-noaa20-truecolor",
          "schedule_source_id": "nasa-viirs-noaa20",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-viirs-noaa21-truecolor",
          "provider": "NASA",
          "group": "Satellite imagery",
          "name": "VIIRS NOAA-21 true color",
          "description": "",
          "render_type": "gibs-wms",
          "source_id": "nasa-viirs-noaa21",
          "layer_name": "VIIRS_NOAA21_CorrectedReflectance_TrueColor",
          "service_url": null,
          "coverage": "global",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.78,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-viirs-noaa21-truecolor",
          "schedule_source_id": "nasa-viirs-noaa21",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-goes-east-geocolor",
          "provider": "NASA",
          "group": "Geostationary",
          "name": "GOES-East GeoColor",
          "description": "Rapid-refresh geostationary context.",
          "render_type": "gibs-wms",
          "source_id": "nasa-gibs-goes-east",
          "layer_name": "GOES-East_ABI_GeoColor",
          "service_url": null,
          "coverage": "Americas / Atlantic",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.8,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-goes-east-geocolor",
          "schedule_source_id": "nasa-gibs-goes-east",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-goes-east-ir",
          "provider": "NASA",
          "group": "Geostationary",
          "name": "GOES-East clean infrared",
          "description": "Cloud-top thermal structure, day or night.",
          "render_type": "gibs-wms",
          "source_id": "nasa-gibs-goes-east",
          "layer_name": "GOES-East_ABI_Band13_Clean_Infrared",
          "service_url": null,
          "coverage": "Americas / Atlantic",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.72,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-goes-east-ir",
          "schedule_source_id": "nasa-gibs-goes-east",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-imerg-precipitation",
          "provider": "NASA",
          "group": "Precipitation",
          "name": "IMERG precipitation rate",
          "description": "Satellite-derived precipitation-rate overlay.",
          "render_type": "gibs-wms",
          "source_id": "nasa-imerg",
          "layer_name": "IMERG_Precipitation_Rate_30min",
          "service_url": null,
          "coverage": "global",
          "default_on": true,
          "base_layer": false,
          "opacity": 0.62,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-imerg-precipitation",
          "schedule_source_id": "nasa-imerg",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-omi-aerosol",
          "provider": "NASA",
          "group": "Atmospheric composition",
          "name": "NOAA-20 OMPS aerosol index",
          "description": "Absorbing aerosol, smoke, dust and ash context.",
          "render_type": "gibs-wms",
          "source_id": "nasa-omi-aerosol",
          "layer_name": "OMPS_NOAA20_NadirMapper_AerosolIndex_380",
          "service_url": null,
          "coverage": "global",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.65,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-omi-aerosol",
          "schedule_source_id": "nasa-omi-aerosol",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-thermal-anomalies",
          "provider": "NASA",
          "group": "Fire and smoke",
          "name": "MODIS thermal anomalies",
          "description": "Satellite thermal-anomaly markers.",
          "render_type": "gibs-wms",
          "source_id": "nasa-thermal-anomalies",
          "layer_name": "MODIS_Combined_Thermal_Anomalies_All",
          "service_url": null,
          "coverage": "global",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.9,
          "time_mode": "date",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=nasa-thermal-anomalies",
          "schedule_source_id": "nasa-thermal-anomalies",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "noaa-nexrad",
          "provider": "NOAA",
          "group": "Radar",
          "name": "NOAA NEXRAD mosaic",
          "description": "Time-enabled national radar mosaic.",
          "render_type": "wms",
          "source_id": "noaa-nowcoast-radar",
          "layer_name": "base_reflectivity_mosaic",
          "service_url": "https://nowcoast.noaa.gov/geoserver/observations/weather_radar/ows",
          "coverage": "United States / adjacent waters",
          "default_on": true,
          "base_layer": false,
          "opacity": 0.76,
          "time_mode": "latest",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=noaa-nexrad",
          "schedule_source_id": "noaa-nowcoast-radar",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "noaa-short-warnings",
          "provider": "NOAA",
          "group": "Hazards",
          "name": "NOAA short-duration warnings",
          "description": "Tornado, severe thunderstorm, flash-flood and similar warnings.",
          "render_type": "wms",
          "source_id": "noaa-nowcoast-short-warnings",
          "layer_name": "alerts:watches_warnings_advisories",
          "service_url": "https://nowcoast.noaa.gov/geoserver/ows",
          "coverage": "United States / adjacent waters",
          "default_on": true,
          "base_layer": false,
          "opacity": 0.78,
          "time_mode": "latest",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=noaa-short-warnings",
          "schedule_source_id": "noaa-nowcoast-short-warnings",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "noaa-long-hazards",
          "provider": "NOAA",
          "group": "Hazards",
          "name": "NOAA long-duration hazards",
          "description": "Longer-duration watches, warnings and advisories.",
          "render_type": "wms",
          "source_id": "noaa-nowcoast-long-hazards",
          "layer_name": "alerts:watches_warnings_advisories",
          "service_url": "https://nowcoast.noaa.gov/geoserver/ows",
          "coverage": "United States / adjacent waters",
          "default_on": false,
          "base_layer": false,
          "opacity": 0.65,
          "time_mode": "latest",
          "legend": null,
          "credential": "none",
          "data_kind": "imagery",
          "implementation": "central-cached-raster",
          "local_endpoint": "/api/atmosphere/map/render?layer=noaa-long-hazards",
          "schedule_source_id": "noaa-nowcoast-long-hazards",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nws-alert-polygons",
          "provider": "NOAA",
          "group": "Vector overlays",
          "name": "NWS active alert polygons",
          "description": "Alert geometry from the NWS API.",
          "render_type": "vector-alerts",
          "source_id": "noaa-nws-alerts",
          "layer_name": null,
          "service_url": null,
          "coverage": "United States / territories",
          "default_on": true,
          "base_layer": false,
          "opacity": 0.85,
          "time_mode": "latest",
          "legend": null,
          "credential": "none",
          "data_kind": "vector-context",
          "implementation": "local-summary-vector",
          "local_endpoint": "/api/atmosphere/summary",
          "schedule_source_id": "noaa-nws-alerts",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "awc-stations",
          "provider": "NOAA",
          "group": "Vector overlays",
          "name": "METAR station observations",
          "description": "Worldwide aviation weather stations near the AOA.",
          "render_type": "vector-stations",
          "source_id": "noaa-awc-metar",
          "layer_name": null,
          "service_url": null,
          "coverage": "global",
          "default_on": true,
          "base_layer": false,
          "opacity": 1,
          "time_mode": "latest",
          "legend": null,
          "credential": "none",
          "data_kind": "vector-context",
          "implementation": "local-summary-vector",
          "local_endpoint": "/api/atmosphere/summary",
          "schedule_source_id": "noaa-awc-metar",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-eonet-events",
          "provider": "NASA",
          "group": "Vector overlays",
          "name": "NASA natural events",
          "description": "Open natural-event geometry from EONET.",
          "render_type": "vector-events",
          "source_id": "nasa-eonet",
          "layer_name": null,
          "service_url": null,
          "coverage": "global",
          "default_on": true,
          "base_layer": false,
          "opacity": 1,
          "time_mode": "latest",
          "legend": null,
          "credential": "none",
          "data_kind": "vector-context",
          "implementation": "local-summary-vector",
          "local_endpoint": "/api/atmosphere/summary",
          "schedule_source_id": "nasa-eonet",
          "training_eligibility": "not observation training data"
        },
        {
          "id": "nasa-firms-fires",
          "provider": "NASA",
          "group": "Vector overlays",
          "name": "NASA FIRMS active fires",
          "description": "Credential-gated active-fire points.",
          "render_type": "vector-fires",
          "source_id": "nasa-firms",
          "layer_name": null,
          "service_url": null,
          "coverage": "global",
          "default_on": false,
          "base_layer": false,
          "opacity": 1,
          "time_mode": "latest",
          "legend": null,
          "credential": "NASA_FIRMS_MAP_KEY",
          "data_kind": "vector-context",
          "implementation": "local-summary-vector",
          "local_endpoint": "/api/atmosphere/summary",
          "schedule_source_id": "nasa-firms",
          "training_eligibility": "not observation training data"
        }
      ]
    },
    "ocean": {
      "schema": "openocean.source-inventory/1.0",
      "domain": "ocean",
      "original_package": "OpenC5ISR-OpenOcean-v1.3.0",
      "audit_method": "Static audit of authoritative original source and bundled documentation; no live availability or publication cadence assumed.",
      "catalog_summary": {
        "version": "1.0.0",
        "total_sources": 109,
        "agencies": {
          "NOAA": 63,
          "NASA": 46
        },
        "integrations": {
          "normalized-live": 12,
          "query-ready": 14,
          "map-discovery": 5,
          "download-ready": 7,
          "map-and-download": 5,
          "discovery-ready": 8,
          "discovery-and-download": 1,
          "model-catalog": 2,
          "model-ready": 6,
          "discovery-and-subset": 1,
          "query-and-download": 5,
          "product-ready": 5,
          "federated-discovery": 1,
          "map-live": 1,
          "auth-ready": 3,
          "map-query-auth-ready": 7,
          "query-auth-ready": 21,
          "discovery-auth-ready": 2,
          "campaign-discovery": 3
        },
        "domains": {
          "atmosphere": 12,
          "hazards": 4,
          "ocean-weather": 1,
          "multi-domain": 5,
          "ocean-observations": 6,
          "waves": 2,
          "currents": 2,
          "tides-currents": 3,
          "tides": 2,
          "port-operations": 1,
          "bathymetry": 8,
          "navigation-context": 2,
          "models": 1,
          "ocean-model": 1,
          "tropical-weather": 3,
          "coastal-ocean-model": 1,
          "inland-water": 1,
          "archive": 2,
          "satellite-ocean": 2,
          "sea-surface-temperature": 3,
          "ocean-climatology": 1,
          "ocean-atmosphere-archive": 1,
          "tropical-cyclones": 1,
          "marine-weather": 1,
          "hazards-archive": 1,
          "ocean-health": 2,
          "cryosphere-ocean": 3,
          "surface-currents": 3,
          "great-lakes": 1,
          "earthdata-discovery": 2,
          "earthdata-processing": 1,
          "earthdata-platform": 1,
          "near-real-time": 1,
          "physical-oceanography": 1,
          "salinity": 2,
          "altimetry-hydrology": 1,
          "altimetry": 2,
          "ocean-winds": 2,
          "ocean-state-estimate": 1,
          "sea-level": 2,
          "ocean-biology": 3,
          "ocean-atmosphere": 1,
          "ocean-biology-archive": 1,
          "coastal-thermal": 1,
          "coastal-radar": 1,
          "hazards-atmosphere": 1,
          "precipitation": 1,
          "atmosphere-hydrology": 1,
          "radiation-clouds": 1,
          "clouds-aerosols": 1,
          "atmospheric-composition": 1,
          "air-quality": 1,
          "dust-atmosphere": 1,
          "salinity-archive": 1,
          "arctic-ocean": 1
        },
        "normalized_live": 12,
        "map_capable": 20,
        "auth_ready": 37
      },
      "coverage_counts": {
        "implemented": 14,
        "catalog-only": 83,
        "map-discovery": 2,
        "map-discovery-only": 2,
        "partial": 2,
        "indirect-discovery": 2,
        "map-renderer": 2,
        "implemented-indirect": 2
      },
      "sources": [
        {
          "id": "noaa-nws-api",
          "agency": "NOAA",
          "name": "National Weather Service API",
          "domain": "atmosphere",
          "integration": "normalized-live",
          "endpoint": "https://api.weather.gov",
          "documentation": "https://www.weather.gov/documentation/services-web-api",
          "access": "open",
          "auth": "none",
          "scope": "United States and territories",
          "cadence": "product lifecycle",
          "outputs": [
            "point metadata",
            "forecasts",
            "observations",
            "alerts"
          ],
          "tags": [
            "weather",
            "forecast",
            "alerts"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectNws + fusion.collectNws",
            "modes": [
              "metadata",
              "observed",
              "forecast",
              "alert"
            ],
            "detail": "Point metadata chains observations, hourly/digital-grid forecasts, and alerts. Product-specific sources stay separate."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nws-alerts",
          "agency": "NOAA",
          "name": "NWS Active Alerts / CAP",
          "domain": "hazards",
          "integration": "normalized-live",
          "endpoint": "https://api.weather.gov/alerts/active",
          "documentation": "https://www.weather.gov/documentation/services-web-alerts",
          "access": "open",
          "auth": "none",
          "scope": "United States and territories",
          "cadence": "provider-defined",
          "outputs": [
            "CAP alerts",
            "JSON-LD alerts"
          ],
          "tags": [
            "warnings",
            "marine",
            "weather"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectNws + fusion.collectNws",
            "modes": [
              "alert"
            ],
            "detail": "AOA alert query and marine-alert filtering; warning count is decision support, not a physical observation for training."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nws-observations",
          "agency": "NOAA",
          "name": "NWS Surface Observations",
          "domain": "atmosphere",
          "integration": "normalized-live",
          "endpoint": "https://api.weather.gov/stations",
          "documentation": "https://www.weather.gov/documentation/services-web-api",
          "access": "open",
          "auth": "none",
          "scope": "United States and territories",
          "cadence": "provider-defined",
          "outputs": [
            "METAR-derived observations"
          ],
          "tags": [
            "stations",
            "visibility",
            "wind"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectNws + fusion.collectNws",
            "modes": [
              "observed"
            ],
            "detail": "Point/station discovery then latest station observation."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nws-hourly",
          "agency": "NOAA",
          "name": "NWS Hourly Point Forecast",
          "domain": "atmosphere",
          "integration": "normalized-live",
          "endpoint": "https://api.weather.gov/points/{lat},{lon}",
          "documentation": "https://api.weather.gov/points/{lat},{lon}",
          "access": "open",
          "auth": "none",
          "scope": "United States and territories",
          "cadence": "provider-defined",
          "outputs": [
            "hourly temperature",
            "wind",
            "precipitation probability",
            "conditions"
          ],
          "tags": [
            "forecast",
            "hourly"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectNws",
            "modes": [
              "forecast"
            ],
            "detail": "NWS point metadata forecastHourly link is used; prediction timeline stays forecast."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nws-marine",
          "agency": "NOAA",
          "name": "NWS Marine Forecasts and Coastal Waters",
          "domain": "ocean-weather",
          "integration": "query-ready",
          "endpoint": "https://api.weather.gov/zones?type=marine",
          "documentation": "https://api.weather.gov/zones?type=marine",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal waters",
          "cadence": "provider-defined",
          "outputs": [
            "marine zones",
            "forecast products",
            "warnings"
          ],
          "tags": [
            "marine",
            "zones"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nws-radar-ogc",
          "agency": "NOAA",
          "name": "NWS/NCEP Radar OGC Services",
          "domain": "atmosphere",
          "integration": "map-discovery",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/observations/weather_radar/ows",
          "documentation": "https://opengeo.ncep.noaa.gov/geoserver/web/",
          "access": "open",
          "auth": "none",
          "scope": "United States",
          "cadence": "provider-defined",
          "outputs": [
            "radar mosaic WMS/WCS"
          ],
          "tags": [
            "radar",
            "precipitation",
            "WMS"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "map-discovery",
            "adapter": "maps.discover + maps.image",
            "modes": [
              "metadata",
              "map-image"
            ],
            "detail": "WMS capabilities discovery with keyword filtering; discovered WMS names render through allowlisted server image API."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "coded-discovery-requires-provider-result",
          "mapping_state": "see-adapter-and-map-inventory",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nowcoast",
          "agency": "NOAA",
          "name": "nowCOAST Geospatial Services",
          "domain": "multi-domain",
          "integration": "map-discovery",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/ows",
          "documentation": "https://nowcoast.noaa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal and ocean areas",
          "cadence": "near-real-time by layer",
          "outputs": [
            "observations",
            "forecasts",
            "analyses",
            "warnings",
            "bathymetry"
          ],
          "tags": [
            "WMS",
            "coastal",
            "weather",
            "bathymetry"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "map-discovery",
            "adapter": "maps.discover + maps.image",
            "modes": [
              "metadata",
              "map-image"
            ],
            "detail": "WMS capabilities discovery with keyword filtering; discovered WMS names render through allowlisted server image API."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "coded-discovery-requires-provider-result",
          "mapping_state": "see-adapter-and-map-inventory",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nowcoast-wmts",
          "agency": "NOAA",
          "name": "nowCOAST WMTS",
          "domain": "multi-domain",
          "integration": "map-discovery",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/gwc/service/wmts?REQUEST=GetCapabilities",
          "documentation": "https://nowcoast.noaa.gov/geoserver/gwc/service/wmts?REQUEST=GetCapabilities",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal and ocean areas",
          "cadence": "provider-defined",
          "outputs": [
            "tiled map layers"
          ],
          "tags": [
            "WMTS",
            "tiles"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "map-discovery-only",
            "adapter": "maps.discover",
            "modes": [
              "metadata"
            ],
            "detail": "WMTS identifiers are catalogued. Original renderer has no tile-matrix implementation and returns an explicit placeholder for non-WMS layers."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "coded-discovery-requires-provider-result",
          "mapping_state": "see-adapter-and-map-inventory",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ndbc-active",
          "agency": "NOAA",
          "name": "NDBC Active Station Catalog",
          "domain": "ocean-observations",
          "integration": "normalized-live",
          "endpoint": "https://www.ndbc.noaa.gov/activestations.xml",
          "documentation": "https://www.ndbc.noaa.gov/activestations.xml",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "operational",
          "outputs": [
            "station metadata",
            "capabilities"
          ],
          "tags": [
            "buoys",
            "stations"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectNdbc + fusion.ndbcStations",
            "modes": [
              "metadata"
            ],
            "detail": "Active station catalog used for distance-ranked station selection and map markers."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ndbc-stdmet",
          "agency": "NOAA",
          "name": "NDBC Standard Meteorological Data",
          "domain": "ocean-observations",
          "integration": "normalized-live",
          "endpoint": "https://www.ndbc.noaa.gov/data/realtime2/{station}.txt",
          "documentation": "https://www.ndbc.noaa.gov/data/realtime2/{station}.txt",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "station dependent",
          "outputs": [
            "wind",
            "waves",
            "pressure",
            "air temperature",
            "water temperature",
            "visibility",
            "tide"
          ],
          "tags": [
            "buoy",
            "waves",
            "wind"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectNdbc + fusion.collectNdbc",
            "modes": [
              "observed"
            ],
            "detail": "NDBC realtime station standard meteorological text; existing installed station-selection/parser behavior is retained by connection patch."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ndbc-spectral-wave",
          "agency": "NOAA",
          "name": "NDBC Spectral Wave Data",
          "domain": "waves",
          "integration": "query-ready",
          "endpoint": "https://www.ndbc.noaa.gov/data/realtime2/{station}.spec",
          "documentation": "https://www.ndbc.noaa.gov/data/realtime2/{station}.spec",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "wave spectra",
            "swell components"
          ],
          "tags": [
            "waves",
            "spectrum"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "fusion.collectNdbc",
            "modes": [
              "observed"
            ],
            "detail": "Existing .spec table parsing for swell/wave fields; no new spectral decoder."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ndbc-ocean-current",
          "agency": "NOAA",
          "name": "NDBC Ocean Current Data",
          "domain": "currents",
          "integration": "query-ready",
          "endpoint": "https://www.ndbc.noaa.gov/data/realtime2/{station}.adcp",
          "documentation": "https://www.ndbc.noaa.gov/data/realtime2/{station}.adcp",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "ADCP current profiles"
          ],
          "tags": [
            "current",
            "ADCP"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ndbc-dart",
          "agency": "NOAA",
          "name": "DART Tsunami Buoy Observations",
          "domain": "hazards",
          "integration": "query-ready",
          "endpoint": "https://www.ndbc.noaa.gov/dart.shtml",
          "documentation": "https://www.ndbc.noaa.gov/dart.shtml",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "bottom pressure",
            "water-column height",
            "tsunami observations"
          ],
          "tags": [
            "tsunami",
            "DART"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ndbc-historical",
          "agency": "NOAA",
          "name": "NDBC Historical Archives",
          "domain": "ocean-observations",
          "integration": "download-ready",
          "endpoint": "https://www.ndbc.noaa.gov/data/historical/",
          "documentation": "https://www.ndbc.noaa.gov/data/historical/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "annual archives",
          "outputs": [
            "historical station files"
          ],
          "tags": [
            "archive",
            "buoy"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ndbc-tao",
          "agency": "NOAA",
          "name": "TAO/TRITON Tropical Atmosphere Ocean Array",
          "domain": "ocean-observations",
          "integration": "query-ready",
          "endpoint": "https://www.ndbc.noaa.gov/tao.shtml",
          "documentation": "https://www.ndbc.noaa.gov/tao.shtml",
          "access": "open",
          "auth": "none",
          "scope": "Tropical Pacific",
          "cadence": "provider-defined",
          "outputs": [
            "ocean",
            "meteorological",
            "subsurface"
          ],
          "tags": [
            "TAO",
            "El Niño"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ndbc-pirata",
          "agency": "NOAA",
          "name": "PIRATA Tropical Atlantic Array",
          "domain": "ocean-observations",
          "integration": "query-ready",
          "endpoint": "https://www.ndbc.noaa.gov/pirata.shtml",
          "documentation": "https://www.ndbc.noaa.gov/pirata.shtml",
          "access": "open",
          "auth": "none",
          "scope": "Tropical Atlantic",
          "cadence": "provider-defined",
          "outputs": [
            "ocean",
            "meteorological",
            "subsurface"
          ],
          "tags": [
            "PIRATA",
            "Atlantic"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coops-data",
          "agency": "NOAA",
          "name": "CO-OPS Data API",
          "domain": "tides-currents",
          "integration": "normalized-live",
          "endpoint": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter",
          "documentation": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal stations",
          "cadence": "provider-defined",
          "outputs": [
            "water level",
            "tide predictions",
            "currents",
            "meteorology",
            "conductivity",
            "visibility"
          ],
          "tags": [
            "tides",
            "currents",
            "PORTS"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectCoops + fusion.collectCoops",
            "modes": [
              "observed",
              "forecast"
            ],
            "detail": "Parameterized data API; water_level, predictions, water_temperature, salinity, air_pressure, visibility, wind, currents queries. Product availability is station-dependent."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coops-metadata",
          "agency": "NOAA",
          "name": "CO-OPS Metadata API",
          "domain": "tides-currents",
          "integration": "normalized-live",
          "endpoint": "https://api.tidesandcurrents.noaa.gov/mdapi/prod/webapi/stations.json",
          "documentation": "https://api.tidesandcurrents.noaa.gov/mdapi/prod/webapi/stations.json",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal stations",
          "cadence": "provider-defined",
          "outputs": [
            "station metadata",
            "sensors",
            "benchmarks",
            "datums"
          ],
          "tags": [
            "stations",
            "metadata"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectCoops + fusion.coopsStations",
            "modes": [
              "metadata"
            ],
            "detail": "Station metadata and nearby-station map markers."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coops-derived",
          "agency": "NOAA",
          "name": "CO-OPS Derived Product API",
          "domain": "tides-currents",
          "integration": "query-ready",
          "endpoint": "https://api.tidesandcurrents.noaa.gov/dpapi/prod/",
          "documentation": "https://api.tidesandcurrents.noaa.gov/dpapi/prod/",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal stations",
          "cadence": "provider-defined",
          "outputs": [
            "sea level trends",
            "extremes",
            "datums",
            "flooding statistics"
          ],
          "tags": [
            "derived",
            "sea level"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coops-water-level",
          "agency": "NOAA",
          "name": "CO-OPS Water Levels",
          "domain": "tides",
          "integration": "normalized-live",
          "endpoint": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=water_level",
          "documentation": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=water_level",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal stations",
          "cadence": "provider-defined",
          "outputs": [
            "verified/preliminary water levels"
          ],
          "tags": [
            "water level",
            "tide"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectCoops + fusion.collectCoops",
            "modes": [
              "observed"
            ],
            "detail": "Measured water_level request; connection patch does not alter parser."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coops-predictions",
          "agency": "NOAA",
          "name": "CO-OPS Tide Predictions",
          "domain": "tides",
          "integration": "normalized-live",
          "endpoint": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=predictions",
          "documentation": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=predictions",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal stations",
          "cadence": "provider-defined",
          "outputs": [
            "high/low and interval predictions"
          ],
          "tags": [
            "tide",
            "prediction"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectCoops + fusion.collectCoops",
            "modes": [
              "forecast"
            ],
            "detail": "Explicit predictions product. Must never become observed training input."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coops-currents",
          "agency": "NOAA",
          "name": "CO-OPS Currents and Predictions",
          "domain": "currents",
          "integration": "query-ready",
          "endpoint": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=currents",
          "documentation": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=currents",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal current stations",
          "cadence": "provider-defined",
          "outputs": [
            "current speed",
            "direction",
            "bin depth"
          ],
          "tags": [
            "current",
            "PORTS"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "partial",
            "adapter": "fusion.collectCoops",
            "modes": [
              "observed"
            ],
            "detail": "Current measurement query is coded. Separate current-predictions adapter is not coded."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coops-meteorology",
          "agency": "NOAA",
          "name": "CO-OPS Coastal Meteorology",
          "domain": "atmosphere",
          "integration": "query-ready",
          "endpoint": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=wind",
          "documentation": "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=wind",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal stations",
          "cadence": "provider-defined",
          "outputs": [
            "wind",
            "air temperature",
            "pressure",
            "humidity",
            "visibility"
          ],
          "tags": [
            "weather",
            "coastal"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "partial",
            "adapter": "fusion.collectCoops",
            "modes": [
              "observed"
            ],
            "detail": "Wind, air pressure, and visibility queries are coded; station product availability is not guaranteed."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ports",
          "agency": "NOAA",
          "name": "Physical Oceanographic Real-Time System (PORTS)",
          "domain": "port-operations",
          "integration": "query-ready",
          "endpoint": "https://tidesandcurrents.noaa.gov/ports.html",
          "documentation": "https://tidesandcurrents.noaa.gov/ports.html",
          "access": "open",
          "auth": "none",
          "scope": "Selected United States ports",
          "cadence": "provider-defined",
          "outputs": [
            "water levels",
            "currents",
            "meteorology",
            "bridge clearance"
          ],
          "tags": [
            "ports",
            "navigation support"
          ],
          "status": "configured",
          "notes": "Planning and situational-awareness input; follow official navigation procedures.",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-etopo-2022",
          "agency": "NOAA",
          "name": "ETOPO 2022 Global Relief Model",
          "domain": "bathymetry",
          "integration": "map-and-download",
          "endpoint": "https://www.ncei.noaa.gov/products/etopo-global-relief-model",
          "documentation": "https://www.ncei.noaa.gov/products/etopo-global-relief-model",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "release dataset",
          "outputs": [
            "15 arc-second bedrock/ice-surface grids",
            "GeoTIFF",
            "NetCDF"
          ],
          "tags": [
            "bathymetry",
            "topography",
            "global"
          ],
          "status": "configured",
          "notes": "Not for navigation.",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-etopo-grid-extract",
          "agency": "NOAA",
          "name": "ETOPO Grid Extract",
          "domain": "bathymetry",
          "integration": "download-ready",
          "endpoint": "https://www.ncei.noaa.gov/maps/grid-extract/",
          "documentation": "https://www.ncei.noaa.gov/maps/grid-extract/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "AOI grid subset"
          ],
          "tags": [
            "bathymetry",
            "subset"
          ],
          "status": "configured",
          "notes": "Not for navigation.",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-bluetopo",
          "agency": "NOAA",
          "name": "BlueTopo",
          "domain": "bathymetry",
          "integration": "map-and-download",
          "endpoint": "https://nauticalcharts.noaa.gov/data/bluetopo.html",
          "documentation": "https://nauticalcharts.noaa.gov/data/bluetopo.html",
          "access": "open",
          "auth": "none",
          "scope": "United States waters",
          "cadence": "provider-defined",
          "outputs": [
            "best-available bathymetry",
            "quality",
            "source contribution"
          ],
          "tags": [
            "bathymetry",
            "hydrography",
            "GeoTIFF"
          ],
          "status": "configured",
          "notes": "Not a substitute for official nautical charts.",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-bluetopo-wmts",
          "agency": "NOAA",
          "name": "BlueTopo nowCOAST WMTS",
          "domain": "bathymetry",
          "integration": "map-discovery",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/gwc/service/wmts?REQUEST=GetCapabilities",
          "documentation": "https://nowcoast.noaa.gov/geoserver/gwc/service/wmts?REQUEST=GetCapabilities",
          "access": "open",
          "auth": "none",
          "scope": "United States waters",
          "cadence": "provider-defined",
          "outputs": [
            "bathymetry tiles",
            "uncertainty",
            "source"
          ],
          "tags": [
            "BlueTopo",
            "WMTS"
          ],
          "status": "configured",
          "notes": "Not for navigation.",
          "coverage": {
            "kind": "map-discovery-only",
            "adapter": "maps.discover",
            "modes": [
              "metadata"
            ],
            "detail": "WMTS identifiers are catalogued. Original renderer has no tile-matrix implementation and returns an explicit placeholder for non-WMS layers."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "coded-discovery-requires-provider-result",
          "mapping_state": "see-adapter-and-map-inventory",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-bluetopo-cloud",
          "agency": "NOAA",
          "name": "BlueTopo NOAA Open Data Dissemination",
          "domain": "bathymetry",
          "integration": "download-ready",
          "endpoint": "https://noaa-nos-hydrographic-pds.s3.amazonaws.com/index.html",
          "documentation": "https://noaa-nos-hydrographic-pds.s3.amazonaws.com/index.html",
          "access": "open",
          "auth": "none",
          "scope": "United States waters",
          "cadence": "provider-defined",
          "outputs": [
            "GeoTIFF tiles",
            "raster attribute tables"
          ],
          "tags": [
            "BlueTopo",
            "cloud"
          ],
          "status": "configured",
          "notes": "Not for navigation.",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-bathymetric-viewer",
          "agency": "NOAA",
          "name": "NCEI Bathymetric Data Viewer",
          "domain": "bathymetry",
          "integration": "discovery-ready",
          "endpoint": "https://www.ncei.noaa.gov/maps/bathymetry/",
          "documentation": "https://www.ncei.noaa.gov/maps/bathymetry/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "multibeam",
            "singlebeam",
            "lidar",
            "crowdsourced bathymetry",
            "tracklines"
          ],
          "tags": [
            "survey",
            "bathymetry"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-hydrographic-surveys",
          "agency": "NOAA",
          "name": "NOS Hydrographic Survey Data",
          "domain": "bathymetry",
          "integration": "download-ready",
          "endpoint": "https://www.ncei.noaa.gov/products/coastal-marine/hydrographic-survey",
          "documentation": "https://www.ncei.noaa.gov/products/coastal-marine/hydrographic-survey",
          "access": "open",
          "auth": "none",
          "scope": "United States waters and survey areas",
          "cadence": "provider-defined",
          "outputs": [
            "bathymetric soundings",
            "survey metadata"
          ],
          "tags": [
            "hydrography",
            "survey"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coastal-relief",
          "agency": "NOAA",
          "name": "Coastal Relief Models",
          "domain": "bathymetry",
          "integration": "download-ready",
          "endpoint": "https://www.ncei.noaa.gov/products/coastal-relief-models",
          "documentation": "https://www.ncei.noaa.gov/products/coastal-relief-models",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal zones",
          "cadence": "provider-defined",
          "outputs": [
            "integrated coastal elevation/bathymetry grids"
          ],
          "tags": [
            "coastal",
            "relief"
          ],
          "status": "configured",
          "notes": "Not for navigation.",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-enc",
          "agency": "NOAA",
          "name": "NOAA Electronic Navigational Charts",
          "domain": "navigation-context",
          "integration": "discovery-and-download",
          "endpoint": "https://nauticalcharts.noaa.gov/charts/noaa-enc.html",
          "documentation": "https://nauticalcharts.noaa.gov/charts/noaa-enc.html",
          "access": "open",
          "auth": "none",
          "scope": "United States charting areas",
          "cadence": "provider-defined",
          "outputs": [
            "S-57 ENC cells",
            "chart services"
          ],
          "tags": [
            "ENC",
            "S-57"
          ],
          "status": "configured",
          "notes": "Use official ECDIS/chart procedures for navigation; OpenOcean display is advisory.",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-enc-direct",
          "agency": "NOAA",
          "name": "NOAA ENC Direct to GIS",
          "domain": "navigation-context",
          "integration": "map-discovery",
          "endpoint": "https://encdirect.noaa.gov/",
          "documentation": "https://encdirect.noaa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "United States charting areas",
          "cadence": "provider-defined",
          "outputs": [
            "GIS-ready ENC features",
            "REST services"
          ],
          "tags": [
            "ENC",
            "GIS"
          ],
          "status": "configured",
          "notes": "Advisory display only.",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nomads",
          "agency": "NOAA",
          "name": "NOMADS Model Distribution",
          "domain": "models",
          "integration": "model-catalog",
          "endpoint": "https://nomads.ncep.noaa.gov/",
          "documentation": "https://nomads.ncep.noaa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "model dependent",
          "outputs": [
            "GRIB2",
            "OPeNDAP",
            "filter services"
          ],
          "tags": [
            "models",
            "forecast"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-gfs",
          "agency": "NOAA",
          "name": "Global Forecast System",
          "domain": "atmosphere",
          "integration": "model-ready",
          "endpoint": "https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/",
          "documentation": "https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "four cycles daily",
          "outputs": [
            "global atmospheric forecast fields"
          ],
          "tags": [
            "GFS",
            "weather"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-hrrr",
          "agency": "NOAA",
          "name": "High-Resolution Rapid Refresh",
          "domain": "atmosphere",
          "integration": "model-ready",
          "endpoint": "https://nomads.ncep.noaa.gov/pub/data/nccf/com/hrrr/prod/",
          "documentation": "https://nomads.ncep.noaa.gov/pub/data/nccf/com/hrrr/prod/",
          "access": "open",
          "auth": "none",
          "scope": "United States",
          "cadence": "hourly cycles",
          "outputs": [
            "high-resolution atmospheric forecast fields"
          ],
          "tags": [
            "HRRR",
            "weather"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-rtofs",
          "agency": "NOAA",
          "name": "Real-Time Ocean Forecast System",
          "domain": "ocean-model",
          "integration": "model-ready",
          "endpoint": "https://nomads.ncep.noaa.gov/pub/data/nccf/com/rtofs/prod/",
          "documentation": "https://nomads.ncep.noaa.gov/pub/data/nccf/com/rtofs/prod/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "daily",
          "outputs": [
            "temperature",
            "salinity",
            "currents",
            "sea surface height"
          ],
          "tags": [
            "RTOFS",
            "currents",
            "SST"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-wavewatch3",
          "agency": "NOAA",
          "name": "WAVEWATCH III Forecast Products",
          "domain": "waves",
          "integration": "model-ready",
          "endpoint": "https://polar.ncep.noaa.gov/waves/",
          "documentation": "https://polar.ncep.noaa.gov/waves/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "significant wave height",
            "period",
            "direction",
            "spectra"
          ],
          "tags": [
            "waves",
            "forecast"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "indirect-discovery",
            "adapter": "fusion.erddapDiscoveredPoint",
            "modes": [
              "model"
            ],
            "detail": "Searches CoastWatch ERDDAP for WaveWatch height, period, direction; the catalog polar.ncep endpoint itself is not downloaded or decoded."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "coded-discovery-requires-provider-result",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-hafs",
          "agency": "NOAA",
          "name": "Hurricane Analysis and Forecast System",
          "domain": "tropical-weather",
          "integration": "model-ready",
          "endpoint": "https://nomads.ncep.noaa.gov/pub/data/nccf/com/hafs/prod/",
          "documentation": "https://nomads.ncep.noaa.gov/pub/data/nccf/com/hafs/prod/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "tropical cyclone coupled atmosphere/ocean forecast fields"
          ],
          "tags": [
            "hurricane",
            "HAFS"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ofs",
          "agency": "NOAA",
          "name": "NOAA Operational Forecast Systems",
          "domain": "coastal-ocean-model",
          "integration": "model-catalog",
          "endpoint": "https://tidesandcurrents.noaa.gov/ofs/",
          "documentation": "https://tidesandcurrents.noaa.gov/ofs/",
          "access": "open",
          "auth": "none",
          "scope": "United States coasts, ports and Great Lakes",
          "cadence": "provider-defined",
          "outputs": [
            "water levels",
            "currents",
            "temperature",
            "salinity"
          ],
          "tags": [
            "OFS",
            "ports"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nwm",
          "agency": "NOAA",
          "name": "National Water Model",
          "domain": "inland-water",
          "integration": "model-ready",
          "endpoint": "https://water.noaa.gov/about/nwm",
          "documentation": "https://water.noaa.gov/about/nwm",
          "access": "open",
          "auth": "none",
          "scope": "United States",
          "cadence": "provider-defined",
          "outputs": [
            "streamflow",
            "channel state",
            "hydrologic guidance"
          ],
          "tags": [
            "rivers",
            "flooding"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ncei-thredds",
          "agency": "NOAA",
          "name": "NCEI THREDDS Data Server",
          "domain": "archive",
          "integration": "discovery-and-subset",
          "endpoint": "https://www.ncei.noaa.gov/thredds/catalog.html",
          "documentation": "https://www.ncei.noaa.gov/thredds/catalog.html",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "OPeNDAP",
            "WMS",
            "NetCDF subset",
            "catalogs"
          ],
          "tags": [
            "THREDDS",
            "archive"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ncei-erddap",
          "agency": "NOAA",
          "name": "NCEI ERDDAP",
          "domain": "archive",
          "integration": "query-ready",
          "endpoint": "https://www.ncei.noaa.gov/erddap/",
          "documentation": "https://www.ncei.noaa.gov/erddap/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "tableDAP",
            "gridDAP",
            "CSV",
            "JSON",
            "NetCDF"
          ],
          "tags": [
            "ERDDAP",
            "subset"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coastwatch-erddap",
          "agency": "NOAA",
          "name": "CoastWatch ERDDAP",
          "domain": "satellite-ocean",
          "integration": "query-ready",
          "endpoint": "https://coastwatch.pfeg.noaa.gov/erddap/",
          "documentation": "https://coastwatch.pfeg.noaa.gov/erddap/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "SST",
            "ocean color",
            "winds",
            "currents",
            "altimetry"
          ],
          "tags": [
            "ERDDAP",
            "satellite"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "fusion.erddapPoint + erddapDiscoveredPoint + collectAnalyses",
            "modes": [
              "metadata",
              "analyzed",
              "model"
            ],
            "detail": "Fixed MUR/OSCAR/ETOPO180 point queries and metadata-driven SMAP/WaveWatch discovery. Failed/missing datasets remain adapter errors."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coastwatch",
          "agency": "NOAA",
          "name": "NOAA CoastWatch",
          "domain": "satellite-ocean",
          "integration": "discovery-ready",
          "endpoint": "https://coastwatch.noaa.gov/",
          "documentation": "https://coastwatch.noaa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "satellite ocean products",
            "training",
            "tools"
          ],
          "tags": [
            "satellite",
            "ocean"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-oisst",
          "agency": "NOAA",
          "name": "Optimum Interpolation Sea Surface Temperature",
          "domain": "sea-surface-temperature",
          "integration": "retained-analysis-subset",
          "endpoint": "https://coastwatch.pfeg.noaa.gov/erddap/griddap/ncdcOisst21NrtAgg_LonPM180.html",
          "documentation": "https://www.ncei.noaa.gov/products/optimum-interpolation-sst",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "daily",
          "outputs": [
            "daily global SST",
            "anomaly",
            "sea ice"
          ],
          "tags": [
            "OISST",
            "SST"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "global-analysis-subset-adapter",
            "adapter": "ocean-worldwide-v1/ocean_oisst.py",
            "modes": [
              "analyzed"
            ],
            "detail": "NOAA blended daily SST; AOI-qualified grid cells, retained original times."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-world-ocean-atlas",
          "agency": "NOAA",
          "name": "World Ocean Atlas",
          "domain": "ocean-climatology",
          "integration": "download-ready",
          "endpoint": "https://www.ncei.noaa.gov/products/world-ocean-atlas",
          "documentation": "https://www.ncei.noaa.gov/products/world-ocean-atlas",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "temperature",
            "salinity",
            "oxygen",
            "nutrients climatologies"
          ],
          "tags": [
            "climatology",
            "profiles"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-icoads",
          "agency": "NOAA",
          "name": "International Comprehensive Ocean-Atmosphere Data Set",
          "domain": "ocean-atmosphere-archive",
          "integration": "download-ready",
          "endpoint": "https://icoads.noaa.gov/",
          "documentation": "https://icoads.noaa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "historical marine surface observations"
          ],
          "tags": [
            "archive",
            "ship observations"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ibtracs",
          "agency": "NOAA",
          "name": "International Best Track Archive for Climate Stewardship",
          "domain": "tropical-cyclones",
          "integration": "query-and-download",
          "endpoint": "https://www.ncei.noaa.gov/products/international-best-track-archive",
          "documentation": "https://www.ncei.noaa.gov/products/international-best-track-archive",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "global tropical cyclone best tracks"
          ],
          "tags": [
            "IBTrACS",
            "hurricane"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nhc-gis",
          "agency": "NOAA",
          "name": "National Hurricane Center GIS",
          "domain": "tropical-weather",
          "integration": "map-and-download",
          "endpoint": "https://www.nhc.noaa.gov/gis/",
          "documentation": "https://www.nhc.noaa.gov/gis/",
          "access": "open",
          "auth": "none",
          "scope": "Atlantic, Eastern and Central Pacific",
          "cadence": "provider-defined",
          "outputs": [
            "forecast tracks",
            "cones",
            "wind probabilities",
            "warnings"
          ],
          "tags": [
            "hurricane",
            "GIS"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-nhc-data",
          "agency": "NOAA",
          "name": "National Hurricane Center Data Archive",
          "domain": "tropical-weather",
          "integration": "query-and-download",
          "endpoint": "https://www.nhc.noaa.gov/data/",
          "documentation": "https://www.nhc.noaa.gov/data/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "advisories",
            "best tracks",
            "ATCF data",
            "GIS products"
          ],
          "tags": [
            "hurricane",
            "archive"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-opc",
          "agency": "NOAA",
          "name": "Ocean Prediction Center",
          "domain": "marine-weather",
          "integration": "product-ready",
          "endpoint": "https://ocean.weather.gov/",
          "documentation": "https://ocean.weather.gov/",
          "access": "open",
          "auth": "none",
          "scope": "Atlantic and Pacific high seas",
          "cadence": "provider-defined",
          "outputs": [
            "surface analyses",
            "wave forecasts",
            "marine warnings"
          ],
          "tags": [
            "high seas",
            "marine forecast"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-tsunami",
          "agency": "NOAA",
          "name": "NOAA Tsunami Program / Warning Products",
          "domain": "hazards",
          "integration": "product-ready",
          "endpoint": "https://www.tsunami.gov/",
          "documentation": "https://www.tsunami.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "tsunami messages",
            "event status",
            "observations"
          ],
          "tags": [
            "tsunami",
            "warning"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-tsunami-archive",
          "agency": "NOAA",
          "name": "NCEI Global Historical Tsunami Database",
          "domain": "hazards-archive",
          "integration": "query-and-download",
          "endpoint": "https://www.ncei.noaa.gov/products/worldwide-historical-tsunami-database",
          "documentation": "https://www.ncei.noaa.gov/products/worldwide-historical-tsunami-database",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "historical source events",
            "runups",
            "deposits"
          ],
          "tags": [
            "tsunami",
            "archive"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-coral-reef-watch",
          "agency": "NOAA",
          "name": "Coral Reef Watch",
          "domain": "ocean-health",
          "integration": "map-and-download",
          "endpoint": "https://coralreefwatch.noaa.gov/",
          "documentation": "https://coralreefwatch.noaa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "SST",
            "hotspots",
            "degree heating weeks",
            "bleaching alerts"
          ],
          "tags": [
            "coral",
            "SST"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-hab",
          "agency": "NOAA",
          "name": "Harmful Algal Bloom Forecasts",
          "domain": "ocean-health",
          "integration": "product-ready",
          "endpoint": "https://oceanservice.noaa.gov/hazards/hab/",
          "documentation": "https://oceanservice.noaa.gov/hazards/hab/",
          "access": "open",
          "auth": "none",
          "scope": "Selected United States regions",
          "cadence": "provider-defined",
          "outputs": [
            "HAB forecasts",
            "bulletins"
          ],
          "tags": [
            "HAB",
            "water quality"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-sea-ice",
          "agency": "NOAA",
          "name": "NOAA Sea Ice Products",
          "domain": "cryosphere-ocean",
          "integration": "product-ready",
          "endpoint": "https://www.ncei.noaa.gov/products/sea-ice",
          "documentation": "https://www.ncei.noaa.gov/products/sea-ice",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "sea ice concentration",
            "extent",
            "charts",
            "climate records"
          ],
          "tags": [
            "sea ice",
            "Arctic"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-hf-radar",
          "agency": "NOAA",
          "name": "U.S. IOOS High Frequency Radar Network",
          "domain": "surface-currents",
          "integration": "query-ready",
          "endpoint": "https://hfrnet-tds.ucsd.edu/thredds/catalog.html",
          "documentation": "https://ioos.noaa.gov/project/hf-radar/",
          "access": "open",
          "auth": "none",
          "scope": "United States coastal waters",
          "cadence": "provider-defined",
          "outputs": [
            "surface current vectors",
            "radial currents"
          ],
          "tags": [
            "HF radar",
            "currents"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-ioos-erddap",
          "agency": "NOAA",
          "name": "IOOS Regional ERDDAP and Data Access",
          "domain": "ocean-observations",
          "integration": "federated-discovery",
          "endpoint": "https://ioos.noaa.gov/data/access-ioos-data/",
          "documentation": "https://ioos.noaa.gov/data/access-ioos-data/",
          "access": "open",
          "auth": "none",
          "scope": "United States regional associations",
          "cadence": "provider-defined",
          "outputs": [
            "regional observations",
            "models",
            "biological data"
          ],
          "tags": [
            "IOOS",
            "ERDDAP"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-glerl",
          "agency": "NOAA",
          "name": "Great Lakes Environmental Research Laboratory",
          "domain": "great-lakes",
          "integration": "product-ready",
          "endpoint": "https://www.glerl.noaa.gov/data/",
          "documentation": "https://www.glerl.noaa.gov/data/",
          "access": "open",
          "auth": "none",
          "scope": "Great Lakes",
          "cadence": "provider-defined",
          "outputs": [
            "water levels",
            "temperature",
            "ice",
            "waves",
            "models"
          ],
          "tags": [
            "Great Lakes",
            "freshwater"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-goes",
          "agency": "NOAA",
          "name": "GOES Imagery and Products",
          "domain": "atmosphere",
          "integration": "map-and-download",
          "endpoint": "https://www.star.nesdis.noaa.gov/goes/",
          "documentation": "https://www.star.nesdis.noaa.gov/goes/",
          "access": "open",
          "auth": "none",
          "scope": "Americas and adjacent oceans",
          "cadence": "provider-defined",
          "outputs": [
            "clouds",
            "water vapor",
            "lightning",
            "SST products"
          ],
          "tags": [
            "GOES",
            "satellite"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "noaa-jpss",
          "agency": "NOAA",
          "name": "JPSS / VIIRS Environmental Products",
          "domain": "multi-domain",
          "integration": "discovery-ready",
          "endpoint": "https://www.jpss.noaa.gov/",
          "documentation": "https://www.jpss.noaa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "ocean color",
            "SST",
            "clouds",
            "atmospheric products"
          ],
          "tags": [
            "VIIRS",
            "JPSS"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-gibs",
          "agency": "NASA",
          "name": "Global Imagery Browse Services (GIBS)",
          "domain": "multi-domain",
          "integration": "map-live",
          "endpoint": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi",
          "documentation": "https://www.earthdata.nasa.gov/data/tools/gibs",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "layer dependent; many daily/NRT",
          "outputs": [
            "WMS",
            "WMTS",
            "TWMS",
            "daily imagery"
          ],
          "tags": [
            "GIBS",
            "WMS",
            "imagery"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "map-renderer",
            "adapter": "maps.image",
            "modes": [
              "map-image"
            ],
            "detail": "Four configured GIBS WMS layers: shaded relief, VIIRS true color, MUR SST, GPM IMERG; image content stays imagery."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "see-adapter-and-map-inventory",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-worldview",
          "agency": "NASA",
          "name": "NASA Worldview",
          "domain": "multi-domain",
          "integration": "discovery-ready",
          "endpoint": "https://worldview.earthdata.nasa.gov/",
          "documentation": "https://worldview.earthdata.nasa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "interactive imagery",
            "events",
            "comparison",
            "snapshot"
          ],
          "tags": [
            "Worldview",
            "imagery"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-cmr",
          "agency": "NASA",
          "name": "Common Metadata Repository Search API",
          "domain": "earthdata-discovery",
          "integration": "query-ready",
          "endpoint": "https://cmr.earthdata.nasa.gov/search/",
          "documentation": "https://cmr.earthdata.nasa.gov/search/site/docs/search/api.html",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "collections",
            "granules",
            "services",
            "variables"
          ],
          "tags": [
            "CMR",
            "search"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-harmony",
          "agency": "NASA",
          "name": "Harmony Data Subsetting API",
          "domain": "earthdata-processing",
          "integration": "auth-ready",
          "endpoint": "https://harmony.earthdata.nasa.gov/",
          "documentation": "https://harmony.earthdata.nasa.gov/docs",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "spatial subset",
            "temporal subset",
            "reprojection",
            "format conversion"
          ],
          "tags": [
            "Harmony",
            "subset"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-earthdata-search",
          "agency": "NASA",
          "name": "Earthdata Search",
          "domain": "earthdata-discovery",
          "integration": "discovery-ready",
          "endpoint": "https://search.earthdata.nasa.gov/",
          "documentation": "https://search.earthdata.nasa.gov/",
          "access": "open",
          "auth": "Earthdata Login for downloads",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "collection and granule discovery",
            "download orchestration"
          ],
          "tags": [
            "Earthdata",
            "search"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-earthdata-cloud",
          "agency": "NASA",
          "name": "NASA Earthdata Cloud",
          "domain": "earthdata-platform",
          "integration": "auth-ready",
          "endpoint": "https://www.earthdata.nasa.gov/eosdis/cloud-evolution",
          "documentation": "https://www.earthdata.nasa.gov/eosdis/cloud-evolution",
          "access": "open",
          "auth": "Earthdata Login / temporary cloud credentials for protected data",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "cloud-native archives",
            "S3 access patterns"
          ],
          "tags": [
            "cloud",
            "Earthdata"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-lance",
          "agency": "NASA",
          "name": "Land, Atmosphere Near real-time Capability for EOS",
          "domain": "near-real-time",
          "integration": "discovery-ready",
          "endpoint": "https://www.earthdata.nasa.gov/learn/find-data/near-real-time",
          "documentation": "https://www.earthdata.nasa.gov/learn/find-data/near-real-time",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "hours by product",
          "outputs": [
            "near-real-time satellite products"
          ],
          "tags": [
            "LANCE",
            "NRT"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-podaac",
          "agency": "NASA",
          "name": "Physical Oceanography Distributed Active Archive Center",
          "domain": "physical-oceanography",
          "integration": "discovery-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/",
          "documentation": "https://podaac.jpl.nasa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "SST",
            "winds",
            "currents",
            "sea surface height",
            "salinity",
            "gravity",
            "ocean circulation"
          ],
          "tags": [
            "PO.DAAC",
            "ocean"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-mur-sst",
          "agency": "NASA",
          "name": "Multi-scale Ultra-high Resolution Sea Surface Temperature",
          "domain": "sea-surface-temperature",
          "integration": "map-query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/dataset/MUR-JPL-L4-GLOB-v4.1",
          "documentation": "https://podaac.jpl.nasa.gov/dataset/MUR-JPL-L4-GLOB-v4.1",
          "access": "open",
          "auth": "Earthdata Login for granule access",
          "scope": "global",
          "cadence": "daily",
          "outputs": [
            "global 1 km Level-4 SST",
            "analysis error",
            "ice"
          ],
          "tags": [
            "MUR",
            "SST",
            "GHRSST"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented-indirect",
            "adapter": "fusion.erddapPoint + maps.image",
            "modes": [
              "analyzed",
              "map-image"
            ],
            "detail": "MUR analysis via CoastWatch ERDDAP and configured GIBS WMS image. Protected PO.DAAC granule access is not implemented."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "see-adapter",
          "mapping_state": "see-adapter-and-map-inventory",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-oscar",
          "agency": "NASA",
          "name": "Ocean Surface Current Analysis Real-time",
          "domain": "surface-currents",
          "integration": "query-and-download",
          "endpoint": "https://podaac.jpl.nasa.gov/dataset/OSCAR_L4_OC_third-deg",
          "documentation": "https://podaac.jpl.nasa.gov/dataset/OSCAR_L4_OC_third-deg",
          "access": "open",
          "auth": "Earthdata Login for protected granules",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "global surface current vectors"
          ],
          "tags": [
            "OSCAR",
            "currents"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented-indirect",
            "adapter": "fusion.collectAnalyses",
            "modes": [
              "analyzed"
            ],
            "detail": "OSCAR analysis via CoastWatch ERDDAP; tries existing depth/no-depth query layouts. Protected granule download is not implemented."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-smap-salinity",
          "agency": "NASA",
          "name": "SMAP Sea Surface Salinity",
          "domain": "salinity",
          "integration": "map-query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/SMAP",
          "documentation": "https://podaac.jpl.nasa.gov/SMAP",
          "access": "open",
          "auth": "Earthdata Login for granule access",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "sea surface salinity",
            "soil moisture"
          ],
          "tags": [
            "SMAP",
            "salinity"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "indirect-discovery",
            "adapter": "fusion.erddapDiscoveredPoint",
            "modes": [
              "analyzed"
            ],
            "detail": "Metadata-driven CoastWatch ERDDAP point analysis discovery. No SMAP granule/authenticated download adapter is coded."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "coded-discovery-requires-provider-result",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-swot",
          "agency": "NASA",
          "name": "Surface Water and Ocean Topography Mission",
          "domain": "altimetry-hydrology",
          "integration": "query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/SWOT",
          "documentation": "https://podaac.jpl.nasa.gov/SWOT",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "wide-swath sea surface height",
            "rivers",
            "lakes",
            "coastal water"
          ],
          "tags": [
            "SWOT",
            "altimetry"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-sentinel6",
          "agency": "NASA",
          "name": "Sentinel-6 Michael Freilich Altimetry",
          "domain": "altimetry",
          "integration": "query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/Sentinel-6",
          "documentation": "https://podaac.jpl.nasa.gov/Sentinel-6",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "sea surface height",
            "significant wave height",
            "wind speed"
          ],
          "tags": [
            "Sentinel-6",
            "altimetry"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-jason3",
          "agency": "NASA",
          "name": "Jason-3 Ocean Surface Topography",
          "domain": "altimetry",
          "integration": "query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/Jason-3",
          "documentation": "https://podaac.jpl.nasa.gov/Jason-3",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "sea surface height",
            "waves",
            "wind"
          ],
          "tags": [
            "Jason-3",
            "altimetry"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-cygnss",
          "agency": "NASA",
          "name": "Cyclone Global Navigation Satellite System",
          "domain": "ocean-winds",
          "integration": "query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/CYGNSS",
          "documentation": "https://podaac.jpl.nasa.gov/CYGNSS",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "ocean surface wind speed",
            "tropical cyclone observations"
          ],
          "tags": [
            "CYGNSS",
            "winds"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-ccmp",
          "agency": "NASA",
          "name": "Cross-Calibrated Multi-Platform Ocean Surface Winds",
          "domain": "ocean-winds",
          "integration": "query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/dataset/CCMP_MEASURES_ATLAS_L4_OW_L3_0_WIND_VECTORS_FLK",
          "documentation": "https://podaac.jpl.nasa.gov/dataset/CCMP_MEASURES_ATLAS_L4_OW_L3_0_WIND_VECTORS_FLK",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "gridded ocean wind vectors"
          ],
          "tags": [
            "CCMP",
            "winds"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-ecco",
          "agency": "NASA",
          "name": "Estimating the Circulation and Climate of the Ocean",
          "domain": "ocean-state-estimate",
          "integration": "query-auth-ready",
          "endpoint": "https://ecco.jpl.nasa.gov/",
          "documentation": "https://ecco.jpl.nasa.gov/",
          "access": "open",
          "auth": "Earthdata Login for data access",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "3D ocean state",
            "heat",
            "freshwater",
            "currents",
            "sea level"
          ],
          "tags": [
            "ECCO",
            "assimilation"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-ghrsst",
          "agency": "NASA",
          "name": "Group for High Resolution Sea Surface Temperature Archive",
          "domain": "sea-surface-temperature",
          "integration": "discovery-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/GHRSST",
          "documentation": "https://podaac.jpl.nasa.gov/GHRSST",
          "access": "open",
          "auth": "Earthdata Login for protected granules",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "multi-sensor SST products"
          ],
          "tags": [
            "GHRSST",
            "SST"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-grace-ocean",
          "agency": "NASA",
          "name": "GRACE and GRACE-FO Ocean Mass Change",
          "domain": "sea-level",
          "integration": "query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/GRACE",
          "documentation": "https://podaac.jpl.nasa.gov/GRACE",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "ocean mass",
            "gravity",
            "sea-level contribution"
          ],
          "tags": [
            "GRACE",
            "sea level"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-sea-level",
          "agency": "NASA",
          "name": "Sea Level Change Portal",
          "domain": "sea-level",
          "integration": "discovery-ready",
          "endpoint": "https://sealevel.nasa.gov/",
          "documentation": "https://sealevel.nasa.gov/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "sea level indicators",
            "projections",
            "mission context",
            "visualizations"
          ],
          "tags": [
            "sea level",
            "climate"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-obdaac",
          "agency": "NASA",
          "name": "Ocean Biology Distributed Active Archive Center",
          "domain": "ocean-biology",
          "integration": "query-auth-ready",
          "endpoint": "https://oceancolor.gsfc.nasa.gov/",
          "documentation": "https://oceancolor.gsfc.nasa.gov/",
          "access": "open",
          "auth": "Earthdata Login for data downloads",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "ocean color",
            "chlorophyll",
            "optical properties",
            "SST"
          ],
          "tags": [
            "OB.DAAC",
            "ocean color"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-pace",
          "agency": "NASA",
          "name": "PACE Ocean Color, Aerosol and Cloud Data",
          "domain": "ocean-atmosphere",
          "integration": "map-query-auth-ready",
          "endpoint": "https://pace.oceansciences.org/",
          "documentation": "https://pace.oceansciences.org/",
          "access": "open",
          "auth": "Earthdata Login for granules",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "hyperspectral ocean color",
            "aerosol",
            "cloud polarimetry"
          ],
          "tags": [
            "PACE",
            "ocean color"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-modis-aqua-ocean",
          "agency": "NASA",
          "name": "MODIS Aqua Ocean Color",
          "domain": "ocean-biology",
          "integration": "map-query-auth-ready",
          "endpoint": "https://oceancolor.gsfc.nasa.gov/data/aqua/",
          "documentation": "https://oceancolor.gsfc.nasa.gov/data/aqua/",
          "access": "open",
          "auth": "Earthdata Login for granules",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "chlorophyll",
            "reflectance",
            "SST",
            "productivity"
          ],
          "tags": [
            "MODIS",
            "Aqua"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-viirs-ocean",
          "agency": "NASA",
          "name": "VIIRS Ocean Color",
          "domain": "ocean-biology",
          "integration": "map-query-auth-ready",
          "endpoint": "https://oceancolor.gsfc.nasa.gov/data/viirs-snpp/",
          "documentation": "https://oceancolor.gsfc.nasa.gov/data/viirs-snpp/",
          "access": "open",
          "auth": "Earthdata Login for granules",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "chlorophyll",
            "reflectance",
            "SST"
          ],
          "tags": [
            "VIIRS",
            "ocean color"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-seawifs",
          "agency": "NASA",
          "name": "SeaWiFS Ocean Color Archive",
          "domain": "ocean-biology-archive",
          "integration": "query-auth-ready",
          "endpoint": "https://oceancolor.gsfc.nasa.gov/data/seawifs/",
          "documentation": "https://oceancolor.gsfc.nasa.gov/data/seawifs/",
          "access": "open",
          "auth": "Earthdata Login for granules",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "historical ocean color"
          ],
          "tags": [
            "SeaWiFS",
            "archive"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-ecostress-coastal",
          "agency": "NASA",
          "name": "ECOSTRESS Surface Temperature",
          "domain": "coastal-thermal",
          "integration": "query-auth-ready",
          "endpoint": "https://ecostress.jpl.nasa.gov/",
          "documentation": "https://ecostress.jpl.nasa.gov/",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "surface temperature",
            "evapotranspiration",
            "coastal thermal context"
          ],
          "tags": [
            "ECOSTRESS",
            "temperature"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-uavsar-coastal",
          "agency": "NASA",
          "name": "UAVSAR Coastal and Ocean Campaign Data",
          "domain": "coastal-radar",
          "integration": "query-auth-ready",
          "endpoint": "https://uavsar.jpl.nasa.gov/",
          "documentation": "https://uavsar.jpl.nasa.gov/",
          "access": "open",
          "auth": "Earthdata Login for selected downloads",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "polarimetric SAR",
            "interferometry",
            "coastal change"
          ],
          "tags": [
            "UAVSAR",
            "SAR"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-power",
          "agency": "NASA",
          "name": "Prediction Of Worldwide Energy Resources API",
          "domain": "atmosphere",
          "integration": "normalized-live",
          "endpoint": "https://power.larc.nasa.gov/api/temporal/daily/point",
          "documentation": "https://power.larc.nasa.gov/docs/services/api/",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "daily/monthly/hourly products",
          "outputs": [
            "global meteorology",
            "surface radiation",
            "climatology"
          ],
          "tags": [
            "POWER",
            "weather",
            "global"
          ],
          "status": "configured",
          "notes": "Archive/analysis service; returned dates and latency are preserved.",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectPower",
            "modes": [
              "analyzed",
              "archive"
            ],
            "detail": "Daily archive/analysis response dates and latency stay visible; not a realtime station measurement."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-eonet",
          "agency": "NASA",
          "name": "Earth Observatory Natural Event Tracker API",
          "domain": "hazards",
          "integration": "normalized-live",
          "endpoint": "https://eonet.gsfc.nasa.gov/api/v3/events",
          "documentation": "https://eonet.gsfc.nasa.gov/docs/v3",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "open and historical natural events",
            "geometry",
            "source links"
          ],
          "tags": [
            "EONET",
            "events"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "implemented",
            "adapter": "conditions.collectEonet",
            "modes": [
              "event"
            ],
            "detail": "Natural-event catalog proximity filtering and map markers. Events are not physical observed training samples."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "see-adapter",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-firms",
          "agency": "NASA",
          "name": "Fire Information for Resource Management System",
          "domain": "hazards-atmosphere",
          "integration": "auth-ready",
          "endpoint": "https://firms.modaps.eosdis.nasa.gov/api/",
          "documentation": "https://firms.modaps.eosdis.nasa.gov/api/",
          "access": "open",
          "auth": "FIRMS MAP_KEY",
          "scope": "global",
          "cadence": "near-real-time",
          "outputs": [
            "active fire detections",
            "area downloads",
            "WMS"
          ],
          "tags": [
            "FIRMS",
            "fire",
            "smoke context"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-gpm",
          "agency": "NASA",
          "name": "Global Precipitation Measurement / IMERG",
          "domain": "precipitation",
          "integration": "map-query-auth-ready",
          "endpoint": "https://gpm.nasa.gov/data",
          "documentation": "https://gpm.nasa.gov/data",
          "access": "open",
          "auth": "Earthdata Login for granules",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "global precipitation estimates"
          ],
          "tags": [
            "GPM",
            "IMERG"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "map-renderer",
            "adapter": "maps.image",
            "modes": [
              "map-image"
            ],
            "detail": "Configured GIBS precipitation image only; protected precipitation granule ingestion is not coded."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "see-adapter",
          "mapping_state": "see-adapter-and-map-inventory",
          "transport": "OpenEnvironment shared cache only",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-merra2",
          "agency": "NASA",
          "name": "MERRA-2 Atmospheric Reanalysis",
          "domain": "atmosphere",
          "integration": "query-auth-ready",
          "endpoint": "https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/",
          "documentation": "https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "global atmosphere",
            "aerosols",
            "surface fluxes",
            "waves forcing context"
          ],
          "tags": [
            "MERRA-2",
            "reanalysis"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-geos-fp",
          "agency": "NASA",
          "name": "GEOS Forward Processing",
          "domain": "atmosphere",
          "integration": "query-auth-ready",
          "endpoint": "https://gmao.gsfc.nasa.gov/GMAO_products/NRT_products.php",
          "documentation": "https://gmao.gsfc.nasa.gov/GMAO_products/NRT_products.php",
          "access": "open",
          "auth": "Earthdata Login for archived products",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "near-real-time global atmospheric analysis and forecast"
          ],
          "tags": [
            "GEOS",
            "forecast"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-gesdisc",
          "agency": "NASA",
          "name": "Goddard Earth Sciences Data and Information Services Center",
          "domain": "atmosphere-hydrology",
          "integration": "discovery-auth-ready",
          "endpoint": "https://disc.gsfc.nasa.gov/",
          "documentation": "https://disc.gsfc.nasa.gov/",
          "access": "open",
          "auth": "Earthdata Login for downloads",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "precipitation",
            "atmospheric composition",
            "reanalysis",
            "hydrology"
          ],
          "tags": [
            "GES DISC",
            "atmosphere"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-airs",
          "agency": "NASA",
          "name": "Atmospheric Infrared Sounder",
          "domain": "atmosphere",
          "integration": "map-query-auth-ready",
          "endpoint": "https://airs.jpl.nasa.gov/data/get-data/",
          "documentation": "https://airs.jpl.nasa.gov/data/get-data/",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "temperature",
            "humidity",
            "clouds",
            "trace gases"
          ],
          "tags": [
            "AIRS",
            "sounder"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-ceres",
          "agency": "NASA",
          "name": "Clouds and the Earth’s Radiant Energy System",
          "domain": "radiation-clouds",
          "integration": "query-auth-ready",
          "endpoint": "https://ceres.larc.nasa.gov/data/",
          "documentation": "https://ceres.larc.nasa.gov/data/",
          "access": "open",
          "auth": "Earthdata Login for data products",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "radiative fluxes",
            "cloud properties"
          ],
          "tags": [
            "CERES",
            "radiation"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-calipso",
          "agency": "NASA",
          "name": "CALIPSO Cloud and Aerosol Lidar",
          "domain": "clouds-aerosols",
          "integration": "query-auth-ready",
          "endpoint": "https://www-calipso.larc.nasa.gov/products/",
          "documentation": "https://www-calipso.larc.nasa.gov/products/",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "vertical cloud and aerosol profiles"
          ],
          "tags": [
            "CALIPSO",
            "aerosol"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-omi",
          "agency": "NASA",
          "name": "Ozone Monitoring Instrument",
          "domain": "atmospheric-composition",
          "integration": "query-auth-ready",
          "endpoint": "https://aura.gsfc.nasa.gov/omi.html",
          "documentation": "https://aura.gsfc.nasa.gov/omi.html",
          "access": "open",
          "auth": "Earthdata Login for products",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "ozone",
            "aerosol index",
            "trace gases"
          ],
          "tags": [
            "OMI",
            "aerosol"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-tempo",
          "agency": "NASA",
          "name": "TEMPO Atmospheric Composition",
          "domain": "air-quality",
          "integration": "query-auth-ready",
          "endpoint": "https://tempo.si.edu/",
          "documentation": "https://tempo.si.edu/",
          "access": "open",
          "auth": "Earthdata Login for products",
          "scope": "North America",
          "cadence": "provider-defined",
          "outputs": [
            "hourly daytime atmospheric pollution"
          ],
          "tags": [
            "TEMPO",
            "air quality"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-emit",
          "agency": "NASA",
          "name": "Earth Surface Mineral Dust Source Investigation",
          "domain": "dust-atmosphere",
          "integration": "query-auth-ready",
          "endpoint": "https://earth.jpl.nasa.gov/emit/data/data-portal/",
          "documentation": "https://earth.jpl.nasa.gov/emit/data/data-portal/",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "surface mineralogy",
            "dust source context",
            "methane/plume products"
          ],
          "tags": [
            "EMIT",
            "dust"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-icesat2",
          "agency": "NASA",
          "name": "ICESat-2 Sea Ice, Ocean and Coastal Elevation",
          "domain": "cryosphere-ocean",
          "integration": "query-auth-ready",
          "endpoint": "https://icesat-2.gsfc.nasa.gov/science/data-products",
          "documentation": "https://icesat-2.gsfc.nasa.gov/science/data-products",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "sea ice freeboard",
            "ocean surface height",
            "coastal elevation"
          ],
          "tags": [
            "ICESat-2",
            "sea ice"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-icebridge",
          "agency": "NASA",
          "name": "Operation IceBridge Archive",
          "domain": "cryosphere-ocean",
          "integration": "query-auth-ready",
          "endpoint": "https://nsidc.org/data/icebridge",
          "documentation": "https://nsidc.org/data/icebridge",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "airborne ice elevation",
            "snow",
            "radar",
            "imagery"
          ],
          "tags": [
            "IceBridge",
            "cryosphere"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-smode",
          "agency": "NASA",
          "name": "Sub-Mesoscale Ocean Dynamics Experiment",
          "domain": "surface-currents",
          "integration": "campaign-discovery",
          "endpoint": "https://airbornescience.nasa.gov/content/S-MODE",
          "documentation": "https://airbornescience.nasa.gov/content/S-MODE",
          "access": "open",
          "auth": "none",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "submesoscale currents",
            "fronts",
            "airborne and in-situ campaign data"
          ],
          "tags": [
            "S-MODE",
            "currents"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "none-declared-in-original-catalog",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-spurs",
          "agency": "NASA",
          "name": "Salinity Processes in the Upper-ocean Regional Study",
          "domain": "salinity",
          "integration": "campaign-discovery",
          "endpoint": "https://podaac.jpl.nasa.gov/SPURS",
          "documentation": "https://podaac.jpl.nasa.gov/SPURS",
          "access": "open",
          "auth": "Earthdata Login for data",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "salinity process observations",
            "fluxes",
            "profiles"
          ],
          "tags": [
            "SPURS",
            "salinity"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-aquarius",
          "agency": "NASA",
          "name": "Aquarius Sea Surface Salinity Archive",
          "domain": "salinity-archive",
          "integration": "query-auth-ready",
          "endpoint": "https://podaac.jpl.nasa.gov/Aquarius",
          "documentation": "https://podaac.jpl.nasa.gov/Aquarius",
          "access": "open",
          "auth": "Earthdata Login",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "historical sea surface salinity"
          ],
          "tags": [
            "Aquarius",
            "salinity"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        },
        {
          "id": "nasa-sassie",
          "agency": "NASA",
          "name": "Salinity and Stratification at the Sea Ice Edge",
          "domain": "arctic-ocean",
          "integration": "campaign-discovery",
          "endpoint": "https://podaac.jpl.nasa.gov/SASSIE",
          "documentation": "https://podaac.jpl.nasa.gov/SASSIE",
          "access": "open",
          "auth": "Earthdata Login for data",
          "scope": "global",
          "cadence": "provider-defined",
          "outputs": [
            "Arctic salinity",
            "stratification",
            "sea-ice-edge observations"
          ],
          "tags": [
            "SASSIE",
            "Arctic"
          ],
          "status": "configured",
          "notes": "",
          "coverage": {
            "kind": "catalog-only",
            "adapter": null,
            "modes": [],
            "detail": "Catalog/documentation entry retained. No executable provider-specific adapter for this entry is present in the authoritative original."
          },
          "auth_state": "provider-auth-declared; credentials and protected-product ingestion not implemented by this connection patch",
          "discovery_state": "documentation-only",
          "mapping_state": "no-mapped-renderer-for-this-entry",
          "transport": "documentation link; no automatic fetch",
          "live_verification": "not-performed",
          "training_eligibility": "Not implied by catalog presence or adapter. Only separately validated measured records retained by OpenEnvironment can be observed training input."
        }
      ],
      "map_layers": [
        {
          "id": "openocean-relief",
          "name": "OpenOcean Relief Preview",
          "group": "bathymetry",
          "provider": "OpenOcean",
          "kind": "local-generated",
          "opacity": 1,
          "default_on": true,
          "authoritative": false,
          "description": "Dependency-free planning background used when remote imagery is unavailable. Not bathymetric survey data and not for navigation.",
          "render_state": "synthetic-planning-background",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "nasa-blue-marble-bathymetry",
          "name": "NASA Blue Marble + Shaded Relief/Bathymetry",
          "group": "bathymetry",
          "provider": "NASA GIBS",
          "kind": "wms",
          "endpoint": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi",
          "remote_layer": "BlueMarble_ShadedRelief_Bathymetry",
          "format": "image/jpeg",
          "opacity": 1,
          "default_on": true,
          "time_mode": "none",
          "authoritative": false,
          "description": "Global visual context with shaded relief and bathymetric styling.",
          "render_state": "implemented-server-WMS-image",
          "browser_path": "/api/ocean/map/image?layer=nasa-blue-marble-bathymetry&latitude={latitude}&longitude={longitude}&radius_km={radius_km}",
          "training_observation": false
        },
        {
          "id": "nasa-viirs-true-color",
          "name": "NASA VIIRS True Color",
          "group": "satellite",
          "provider": "NASA GIBS",
          "kind": "wms",
          "endpoint": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi",
          "remote_layer": "VIIRS_SNPP_CorrectedReflectance_TrueColor",
          "format": "image/jpeg",
          "opacity": 0.72,
          "default_on": false,
          "time_mode": "date",
          "authoritative": false,
          "description": "Daily visible satellite context where available.",
          "render_state": "implemented-server-WMS-image",
          "browser_path": "/api/ocean/map/image?layer=nasa-viirs-true-color&latitude={latitude}&longitude={longitude}&radius_km={radius_km}",
          "training_observation": false
        },
        {
          "id": "nasa-mur-sst",
          "name": "NASA MUR Sea Surface Temperature",
          "group": "ocean",
          "provider": "NASA GIBS / PO.DAAC",
          "kind": "wms",
          "endpoint": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi",
          "remote_layer": "GHRSST_L4_MUR_Sea_Surface_Temperature",
          "format": "image/png",
          "opacity": 0.64,
          "default_on": false,
          "time_mode": "date",
          "authoritative": false,
          "description": "Daily Level-4 sea surface temperature visualization; archive latency and availability vary.",
          "render_state": "implemented-server-WMS-image",
          "browser_path": "/api/ocean/map/image?layer=nasa-mur-sst&latitude={latitude}&longitude={longitude}&radius_km={radius_km}",
          "training_observation": false
        },
        {
          "id": "nasa-gpm-precipitation",
          "name": "NASA GPM IMERG Precipitation",
          "group": "weather",
          "provider": "NASA GIBS / GPM",
          "kind": "wms",
          "endpoint": "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi",
          "remote_layer": "IMERG_Precipitation_Rate",
          "format": "image/png",
          "opacity": 0.58,
          "default_on": false,
          "time_mode": "date",
          "authoritative": false,
          "description": "Satellite precipitation estimate for atmospheric context.",
          "render_state": "implemented-server-WMS-image",
          "browser_path": "/api/ocean/map/image?layer=nasa-gpm-precipitation&latitude={latitude}&longitude={longitude}&radius_km={radius_km}",
          "training_observation": false
        },
        {
          "id": "noaa-nowcoast-discovery",
          "name": "NOAA nowCOAST Layers",
          "group": "discovery",
          "provider": "NOAA nowCOAST",
          "kind": "capabilities",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/ows",
          "default_on": false,
          "authoritative": false,
          "description": "Runtime layer discovery for coastal observations, forecasts, warnings, radar, ocean and bathymetry products.",
          "render_state": "capabilities-discovery; may-not-be-renderable",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "noaa-bluetopo-discovery",
          "name": "NOAA BlueTopo WMTS",
          "group": "bathymetry",
          "provider": "NOAA BlueTopo / nowCOAST",
          "kind": "capabilities",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/gwc/service/wmts?REQUEST=GetCapabilities",
          "default_on": false,
          "authoritative": false,
          "description": "Runtime discovery of BlueTopo tiled bathymetry and supporting quality/source layers. Not for navigation.",
          "render_state": "capabilities-discovery; may-not-be-renderable",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "noaa-radar-discovery",
          "name": "NOAA NWS Radar Mosaic",
          "group": "weather",
          "provider": "NOAA/NWS",
          "kind": "capabilities",
          "endpoint": "https://nowcoast.noaa.gov/geoserver/observations/weather_radar/ows",
          "default_on": false,
          "authoritative": false,
          "description": "Runtime discovery of NWS radar mosaic OGC layers.",
          "render_state": "capabilities-discovery; may-not-be-renderable",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "openatmosphere-composite",
          "name": "OpenAtmosphere Composite",
          "group": "weather",
          "provider": "OpenAtmosphere",
          "kind": "bridge",
          "default_on": false,
          "authoritative": false,
          "description": "Configured WMS or module bridge for the OpenAtmosphere weather map; native NOAA/NASA fallbacks remain available.",
          "render_state": "configuration-required",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "vector-aoi",
          "name": "AOA Boundary",
          "group": "operations",
          "provider": "OpenOcean",
          "kind": "vector",
          "default_on": true,
          "opacity": 1,
          "authoritative": true,
          "render_state": "local-vector-from-domain-data",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "vector-ndbc",
          "name": "NDBC Buoys",
          "group": "observations",
          "provider": "NOAA NDBC",
          "kind": "vector",
          "default_on": true,
          "opacity": 1,
          "authoritative": true,
          "render_state": "local-vector-from-domain-data",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "vector-coops",
          "name": "CO-OPS Stations",
          "group": "observations",
          "provider": "NOAA CO-OPS",
          "kind": "vector",
          "default_on": true,
          "opacity": 1,
          "authoritative": true,
          "render_state": "local-vector-from-domain-data",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "vector-alerts",
          "name": "Weather/Marine Alerts",
          "group": "hazards",
          "provider": "NOAA NWS",
          "kind": "vector",
          "default_on": true,
          "opacity": 1,
          "authoritative": true,
          "render_state": "local-vector-from-domain-data",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "vector-eonet",
          "name": "NASA Natural Events",
          "group": "hazards",
          "provider": "NASA EONET",
          "kind": "vector",
          "default_on": false,
          "opacity": 1,
          "authoritative": true,
          "render_state": "local-vector-from-domain-data",
          "browser_path": null,
          "training_observation": false
        },
        {
          "id": "vector-drift",
          "name": "Drift Envelope",
          "group": "operations",
          "provider": "OpenOcean",
          "kind": "vector",
          "default_on": true,
          "opacity": 1,
          "authoritative": false,
          "render_state": "local-vector-from-domain-data",
          "browser_path": null,
          "training_observation": false
        }
      ],
      "notes": [
        "109 catalog entries are preserved; configured/normalized-live in the original catalog are labels, not runtime availability evidence.",
        "ETOPO180 analysis is coded; this is not proof of access to the distinct catalog entry ETOPO 2022.",
        "Existing WMS imagery is fetched on the backend using the same centralized transport as JSON/text. No direct browser provider imagery fallback exists.",
        "All source types, model/forecast/analyzed modes, local edge observations, map discovery states, mission windows, drift, and reports retain existing behavior.",
        "Existing known NDBC parser corrections are not part of the connection-only patch and must not be overwritten."
      ],
      "outbound_transports": [
        {
          "file": "lib/open-ocean/net.js",
          "entry": "FetchCache.fetchBuffer",
          "consumers": [
            "conditions.js",
            "legacy-conditions.js",
            "maps.js capabilities and WMS images"
          ]
        },
        {
          "file": "lib/open-ocean/fusion.js",
          "entry": "FetchCache.text",
          "consumers": [
            "NDBC",
            "CO-OPS",
            "NWS",
            "CoastWatch ERDDAP analyses/model discovery"
          ]
        }
      ],
      "additional_components": [
        {
          "file": "tools/openocean_report.py",
          "outbound_network": false,
          "detail": "Reports use locally supplied conditions and base64 map capture; no provider download."
        }
      ]
    },
    "space": {
      "schema": "openspace.source-inventory/1.0",
      "domain": "space",
      "original_package": "OpenC5ISR-OpenSpace-v1.2.0",
      "audit_method": "Static audit of authoritative original source and bundled documentation; no live-provider success or publication schedules inferred.",
      "scope": {
        "implemented_environment_files": [
          "lib/open-space/environment.js",
          "lib/open-space/environment-v1.js"
        ],
        "routing_evidence": "lib/open-space/index.js invokes environment-v1 before legacy core. Both versioned and legacy environment routes remain present.",
        "v1_source_family_count": 16,
        "legacy_source_family_count": 7,
        "v1_visual_image_id_count": 6,
        "original_endpoint_maps": {
          "v1": {
            "plasma": [
              "https://services.swpc.noaa.gov/json/rtsw/rtsw_wind_1m.json",
              "https://services.swpc.noaa.gov/products/geospace/propagated-solar-wind-1-hour.json",
              "https://services.swpc.noaa.gov/products/geospace/propagated-solar-wind.json",
              "https://services.swpc.noaa.gov/products/solar-wind/plasma-1-day.json",
              "https://services.swpc.noaa.gov/products/solar-wind/plasma-7-day.json"
            ],
            "magneticField": [
              "https://services.swpc.noaa.gov/json/rtsw/rtsw_mag_1m.json",
              "https://services.swpc.noaa.gov/products/geospace/propagated-solar-wind-1-hour.json",
              "https://services.swpc.noaa.gov/products/geospace/propagated-solar-wind.json",
              "https://services.swpc.noaa.gov/products/solar-wind/mag-1-day.json",
              "https://services.swpc.noaa.gov/products/solar-wind/mag-7-day.json"
            ],
            "kp": [
              "https://services.swpc.noaa.gov/products/noaa-planetary-k-index.json"
            ],
            "dst": [
              "https://services.swpc.noaa.gov/products/kyoto-dst.json"
            ],
            "xray": [
              "https://services.swpc.noaa.gov/json/goes/primary/xrays-7-day.json"
            ],
            "protons": [
              "https://services.swpc.noaa.gov/json/goes/primary/integral-protons-7-day.json"
            ],
            "f107": [
              "https://services.swpc.noaa.gov/products/summary/10cm-flux.json",
              "https://services.swpc.noaa.gov/products/10cm-flux-30-day.json",
              "https://services.swpc.noaa.gov/json/f107_cm_flux.json"
            ],
            "alerts": [
              "https://services.swpc.noaa.gov/products/alerts.json"
            ],
            "scales": [
              "https://services.swpc.noaa.gov/products/noaa-scales.json"
            ],
            "aurora": [
              "https://services.swpc.noaa.gov/json/ovation_aurora_latest.json"
            ]
          },
          "legacy": {
            "solarWindMag": "https://services.swpc.noaa.gov/products/solar-wind/mag-1-day.json",
            "solarWindPlasma": "https://services.swpc.noaa.gov/products/solar-wind/plasma-1-day.json",
            "planetaryKp": "https://services.swpc.noaa.gov/products/noaa-planetary-k-index.json",
            "dst": "https://services.swpc.noaa.gov/json/geospace/geospace_dst_1_hour.json",
            "goesXray": "https://services.swpc.noaa.gov/json/goes/primary/xrays-6-hour.json",
            "goesProton": "https://services.swpc.noaa.gov/json/goes/primary/integral-protons-1-day.json",
            "noaaScales": "https://services.swpc.noaa.gov/products/noaa-scales.json",
            "alerts": "https://services.swpc.noaa.gov/products/alerts.json",
            "f107": "https://services.swpc.noaa.gov/json/f107_cm_flux.json",
            "aurora": "https://services.swpc.noaa.gov/json/ovation_aurora_latest.json",
            "lascoAnimation": "https://services.swpc.noaa.gov/products/animations/lasco-c2.json",
            "hapiBase": "https://cdaweb.gsfc.nasa.gov/hapi"
          }
        },
        "non_environment_catalog_source_count": 8,
        "unique_json_product_url_count": 21,
        "image_url_variants": "Six v1 image URLs plus legacy STEREO 512 URL, dynamic legacy LASCO catalog and packaged NASA Blue Marble texture source URL.",
        "classification_basis": "Product categories are audit interpretations of original names, parser timestamp fields and bundled descriptions, not new provider claims or changed schedules."
      },
      "cadence_policy": {
        "provider_issue_interval_seconds": null,
        "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
        "changed": false,
        "original_cache_ttl_semantics": "Demand-driven minimum reuse interval in process-local memory, not a background polling schedule.",
        "original_legacy_summary_cache_ttl_seconds": 60,
        "original_legacy_stale_policy": "On load failure any existing cached value is reused without an absolute stale-age bound; retry expiry is min(original TTL, 30 seconds).",
        "original_v1_stale_policy": "Cached fallback is bounded by load age; operational/probe default 12h, HAPI 7d, DONKI/image body 24h. Selected operational source ages also flag old observations.",
        "documentation_mismatch": "docs/SOURCES.md cache table describes legacy values; environment-v1.js has different literal TTLs recorded per source. Neither defines provider publication cadence."
      },
      "credential_requirements": [
        {
          "id": "public-no-credential",
          "required": false,
          "applies_to": "NOAA SWPC JSON, NASA SDO/STEREO, ESA/NASA SOHO imagery, NASA CDAWeb/HAPI",
          "evidence": [
            "lib/open-space/environment.js",
            "lib/open-space/environment-v1.js"
          ],
          "notes": "Original requests include no provider authentication."
        },
        {
          "id": "nasa-donki-api-key",
          "required": true,
          "required_meaning": "The saved gateway key is not required or forwarded for the public CCMC notification and event endpoints.",
          "configuration_option": "nasaApiKey",
          "environment_variable": "OPENSPACE_NASA_API_KEY",
          "fallback": "No DEMO_KEY fallback for notifications",
          "transport": "Query parameter api_key on NASA DONKI requests only",
          "scope": "Server-side upstream credential",
          "evidence": [
            "lib/open-space/environment.js:179",
            "lib/open-space/environment-v1.js:441",
            "docs/SECURITY.md:28"
          ],
          "readiness": "User key configuration is distinct from DEMO_KEY fallback; no secrets are copied into this inventory."
        }
      ],
      "source_families": [
        {
          "id": "noaa-plasma",
          "name": "NOAA DSCOVR/ACE solar-wind plasma",
          "source_class": "operational",
          "description": "Solar-wind speed, density and temperature",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-01",
            "space-product-02",
            "space-product-03",
            "space-product-04",
            "space-product-05"
          ],
          "original_cache": {
            "v1_ttl_seconds": 60,
            "legacy_ttl_seconds": {
              "plasma": 45
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": 7200
          }
        },
        {
          "id": "noaa-imf",
          "name": "NOAA interplanetary magnetic field",
          "source_class": "operational",
          "description": "Bt and GSM By/Bz magnetic-field components",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-02",
            "space-product-03",
            "space-product-06",
            "space-product-07",
            "space-product-08"
          ],
          "original_cache": {
            "v1_ttl_seconds": 60,
            "legacy_ttl_seconds": {
              "magneticField": 45
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": 7200
          }
        },
        {
          "id": "noaa-kp",
          "name": "NOAA planetary Kp",
          "source_class": "operational",
          "description": "Three-hour global geomagnetic activity",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-09"
          ],
          "original_cache": {
            "v1_ttl_seconds": 300,
            "legacy_ttl_seconds": {
              "kp": 60
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": 21600
          }
        },
        {
          "id": "noaa-dst",
          "name": "Kyoto Dst via NOAA SWPC",
          "source_class": "operational",
          "description": "Ring-current geomagnetic disturbance",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-10",
            "space-product-19"
          ],
          "original_cache": {
            "v1_ttl_seconds": 300,
            "legacy_ttl_seconds": {
              "dst": 60
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": 21600
          }
        },
        {
          "id": "goes-xray",
          "name": "NOAA GOES X-ray",
          "source_class": "operational",
          "description": "1–8 Å soft X-ray flux and flare class",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-11",
            "space-product-20"
          ],
          "original_cache": {
            "v1_ttl_seconds": 60,
            "legacy_ttl_seconds": {
              "xray": 60
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": 1800
          }
        },
        {
          "id": "goes-protons",
          "name": "NOAA GOES energetic protons",
          "source_class": "operational",
          "description": "Integral >10 MeV proton flux",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-12",
            "space-product-21"
          ],
          "original_cache": {
            "v1_ttl_seconds": 60,
            "legacy_ttl_seconds": {
              "protons": 60
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": 1800
          }
        },
        {
          "id": "noaa-f107",
          "name": "NOAA F10.7 cm solar flux",
          "source_class": "operational",
          "description": "Solar-activity and thermospheric-heating proxy",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-13",
            "space-product-14",
            "space-product-15"
          ],
          "original_cache": {
            "v1_ttl_seconds": 1800,
            "legacy_ttl_seconds": {
              "f107": 300
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": 259200
          }
        },
        {
          "id": "noaa-alerts",
          "name": "NOAA SWPC alerts and scales",
          "source_class": "operational",
          "description": "Current warnings, watches and R/S/G scales",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-16",
            "space-product-17"
          ],
          "original_cache": {
            "v1_ttl_seconds": 300,
            "legacy_ttl_seconds": {
              "alerts": 90,
              "scales": 60
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": null
          }
        },
        {
          "id": "noaa-ovation",
          "name": "NOAA OVATION aurora",
          "source_class": "operational",
          "description": "Auroral precipitation probability",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "product_ids": [
            "space-product-18"
          ],
          "original_cache": {
            "v1_ttl_seconds": 300,
            "legacy_ttl_seconds": {
              "aurora": 120
            },
            "v1_maximum_stale_on_error_seconds": 43200,
            "observation_age_stale_threshold_seconds": 3600
          }
        },
        {
          "id": "nasa-ace-hapi",
          "name": "NASA ACE MFI via CDAWeb HAPI",
          "source_class": "science-archive",
          "description": "L1 magnetic-field magnitude and GSE vector",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "hapi_mission_id": "ace",
          "original_cache": {
            "v1_ttl_seconds": 900,
            "legacy_ttl_seconds": 1800,
            "v1_maximum_stale_on_error_seconds": 604800
          }
        },
        {
          "id": "nasa-mms-hapi",
          "name": "NASA MMS1 FGM via CDAWeb HAPI",
          "source_class": "science-archive",
          "description": "Magnetospheric magnetic-field vector",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "hapi_mission_id": "mms",
          "original_cache": {
            "v1_ttl_seconds": 900,
            "legacy_ttl_seconds": 1800,
            "v1_maximum_stale_on_error_seconds": 604800
          }
        },
        {
          "id": "nasa-parker-hapi",
          "name": "NASA Parker Solar Probe FIELDS via CDAWeb HAPI",
          "source_class": "science-archive",
          "description": "Inner-heliosphere RTN magnetic-field vector",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "hapi_mission_id": "parker",
          "original_cache": {
            "v1_ttl_seconds": 900,
            "legacy_ttl_seconds": 1800,
            "v1_maximum_stale_on_error_seconds": 604800
          }
        },
        {
          "id": "nasa-donki",
          "name": "NASA DONKI event knowledge",
          "source_class": "event-service",
          "description": "Flares, CMEs, geomagnetic storms and SEP events",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "nasa-donki-api-key",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "donki_endpoint_names": [
            "FLR",
            "CME",
            "GST",
            "SEP"
          ],
          "original_cache": {
            "v1_ttl_seconds": 1200,
            "legacy_ttl_seconds": 600,
            "v1_maximum_stale_on_error_seconds": 86400
          }
        },
        {
          "id": "nasa-sdo",
          "name": "NASA SDO imagery",
          "source_class": "imagery",
          "description": "AIA coronal views and HMI magnetogram",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "image_ids": [
            "sdo-aia-171",
            "sdo-aia-193",
            "sdo-aia-304",
            "sdo-hmi-magnetogram"
          ],
          "original_cache": {
            "v1_ttl_seconds": 300,
            "legacy_ttl_seconds": 60,
            "v1_maximum_stale_on_error_seconds": 86400
          },
          "original_health_probe": {
            "image_id": "sdo-aia-171",
            "methods": [
              "HEAD",
              "GET with Range: bytes=0-2047 on HEAD failure"
            ],
            "ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 43200,
            "note": "Only first image per family is probed; family health does not verify every image."
          }
        },
        {
          "id": "nasa-stereo",
          "name": "NASA STEREO-A imagery",
          "source_class": "imagery",
          "description": "Solar imagery from a second heliolongitude",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "image_ids": [
            "stereo-a-euvi-195"
          ],
          "original_cache": {
            "v1_ttl_seconds": 300,
            "legacy_ttl_seconds": 60,
            "v1_maximum_stale_on_error_seconds": 86400
          },
          "original_health_probe": {
            "image_id": "stereo-a-euvi-195",
            "methods": [
              "HEAD",
              "GET with Range: bytes=0-2047 on HEAD failure"
            ],
            "ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 43200,
            "note": "Only first image per family is probed; family health does not verify every image."
          }
        },
        {
          "id": "soho-lasco",
          "name": "ESA/NASA SOHO LASCO imagery",
          "source_class": "imagery",
          "description": "White-light coronagraph context",
          "original_file": "lib/open-space/environment-v1.js",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "image_ids": [
            "soho-lasco-c2"
          ],
          "original_cache": {
            "v1_ttl_seconds": 300,
            "legacy_ttl_seconds": 60,
            "v1_maximum_stale_on_error_seconds": 86400
          },
          "original_health_probe": {
            "image_id": "soho-lasco-c2",
            "methods": [
              "HEAD",
              "GET with Range: bytes=0-2047 on HEAD failure"
            ],
            "ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 43200,
            "note": "Only first image per family is probed; family health does not verify every image."
          }
        }
      ],
      "legacy_source_families": [
        {
          "id": "noaa-swpc-realtime",
          "name": "NOAA SWPC Real-Time Space Weather",
          "kind": "space-weather-service",
          "provider": "NOAA Space Weather Prediction Center",
          "adapter": "noaa-swpc-json-openviz",
          "formats": [
            "JSON",
            "alerts",
            "aurora probability grid"
          ],
          "output_schema": "openspace.environment/1.0",
          "status": "available",
          "enabled": true,
          "sample": false,
          "description": "Low-latency solar-wind, interplanetary magnetic-field, geomagnetic, radiation and alert products.",
          "original_file": "lib/open-space/environment.js",
          "v1_family_ids": [
            "noaa-plasma",
            "noaa-imf",
            "noaa-kp",
            "noaa-dst",
            "goes-xray",
            "goes-protons",
            "noaa-f107",
            "noaa-alerts",
            "noaa-ovation"
          ]
        },
        {
          "id": "nasa-sdo-solar-imagery",
          "name": "NASA Solar Dynamics Observatory",
          "kind": "solar-observatory-imagery",
          "provider": "NASA SDO",
          "adapter": "nasa-sdo-image-proxy",
          "formats": [
            "JPEG imagery",
            "AIA 171 Å",
            "AIA 193 Å",
            "AIA 304 Å",
            "HMI magnetogram"
          ],
          "output_schema": "openspace.environment/1.0",
          "status": "available",
          "enabled": true,
          "sample": false,
          "description": "Current full-disk solar imagery and photospheric magnetic-field context.",
          "original_file": "lib/open-space/environment.js",
          "v1_family_ids": [
            "nasa-sdo"
          ]
        },
        {
          "id": "nasa-stereo-soho-imagery",
          "name": "NASA STEREO / ESA-NASA SOHO",
          "kind": "heliophysics-imagery",
          "provider": "NASA STEREO and ESA/NASA SOHO",
          "adapter": "heliophysics-image-proxy",
          "formats": [
            "JPEG imagery",
            "EUV",
            "coronagraph"
          ],
          "output_schema": "openspace.environment/1.0",
          "status": "available",
          "enabled": true,
          "sample": false,
          "description": "Additional viewpoints of the Sun, corona and heliospheric transients.",
          "original_file": "lib/open-space/environment.js",
          "v1_family_ids": [
            "nasa-stereo",
            "soho-lasco"
          ]
        },
        {
          "id": "nasa-ace-magnetic-field",
          "name": "NASA ACE Magnetic Field",
          "kind": "science-archive-timeseries",
          "provider": "NASA CDAWeb / SPDF",
          "adapter": "cdaweb-hapi-ace-mfi",
          "formats": [
            "HAPI JSON",
            "AC_H0_MFI"
          ],
          "output_schema": "openspace.environment/1.0",
          "status": "available-with-archive-lag",
          "enabled": true,
          "sample": false,
          "description": "Advanced Composition Explorer magnetic-field magnitude and GSE vector measurements.",
          "original_file": "lib/open-space/environment.js",
          "v1_family_ids": [
            "nasa-ace-hapi"
          ]
        },
        {
          "id": "nasa-mms-magnetic-field",
          "name": "NASA MMS Magnetic Field",
          "kind": "science-archive-timeseries",
          "provider": "NASA CDAWeb / SPDF",
          "adapter": "cdaweb-hapi-mms-fgm",
          "formats": [
            "HAPI JSON",
            "MMS1 FGM survey Level 2"
          ],
          "output_schema": "openspace.environment/1.0",
          "status": "available-with-archive-lag",
          "enabled": true,
          "sample": false,
          "description": "Magnetospheric Multiscale magnetic-field measurements in GSE coordinates.",
          "original_file": "lib/open-space/environment.js",
          "v1_family_ids": [
            "nasa-mms-hapi"
          ]
        },
        {
          "id": "nasa-parker-fields",
          "name": "NASA Parker Solar Probe FIELDS",
          "kind": "science-archive-timeseries",
          "provider": "NASA CDAWeb / SPDF",
          "adapter": "cdaweb-hapi-psp-fields",
          "formats": [
            "HAPI JSON",
            "PSP_FLD_L2_MAG_RTN_1MIN"
          ],
          "output_schema": "openspace.environment/1.0",
          "status": "available-with-archive-lag",
          "enabled": true,
          "sample": false,
          "description": "One-minute magnetic-field vectors from Parker Solar Probe in RTN coordinates.",
          "original_file": "lib/open-space/environment.js",
          "v1_family_ids": [
            "nasa-parker-hapi"
          ]
        },
        {
          "id": "nasa-donki-events",
          "name": "NASA DONKI Space-Weather Events",
          "kind": "event-knowledge-service",
          "provider": "NASA CCMC DONKI",
          "adapter": "nasa-donki-openknowledge",
          "formats": [
            "JSON events"
          ],
          "output_schema": "openspace.environment/1.0",
          "status": "available",
          "enabled": true,
          "sample": false,
          "description": "Solar flares, CMEs, geomagnetic storms and solar energetic particle events.",
          "original_file": "lib/open-space/environment.js",
          "v1_family_ids": [
            "nasa-donki"
          ]
        }
      ],
      "products": [
        {
          "id": "space-product-01",
          "url": "https://services.swpc.noaa.gov/json/rtsw/rtsw_wind_1m.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-plasma"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "plasma",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-02",
          "url": "https://services.swpc.noaa.gov/products/geospace/propagated-solar-wind-1-hour.json",
          "format": "json",
          "category": "analysis",
          "detail": "Propagated solar-wind product used as fallback for measurements; retain its propagated/product time.",
          "family_ids": [
            "noaa-plasma",
            "noaa-imf"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "plasma",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 2
            },
            {
              "implementation": "v1",
              "source_key": "magneticField",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 2
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-03",
          "url": "https://services.swpc.noaa.gov/products/geospace/propagated-solar-wind.json",
          "format": "json",
          "category": "analysis",
          "detail": "Propagated solar-wind product used as fallback for measurements; retain its propagated/product time.",
          "family_ids": [
            "noaa-plasma",
            "noaa-imf"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "plasma",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 3
            },
            {
              "implementation": "v1",
              "source_key": "magneticField",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 3
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-04",
          "url": "https://services.swpc.noaa.gov/products/solar-wind/plasma-1-day.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-plasma"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "plasma",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 4
            },
            {
              "implementation": "legacy",
              "source_key": "plasma",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 45,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-05",
          "url": "https://services.swpc.noaa.gov/products/solar-wind/plasma-7-day.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-plasma"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "plasma",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 5
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-06",
          "url": "https://services.swpc.noaa.gov/json/rtsw/rtsw_mag_1m.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-imf"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "magneticField",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-07",
          "url": "https://services.swpc.noaa.gov/products/solar-wind/mag-1-day.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-imf"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "magneticField",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 4
            },
            {
              "implementation": "legacy",
              "source_key": "magneticField",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 45,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-08",
          "url": "https://services.swpc.noaa.gov/products/solar-wind/mag-7-day.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-imf"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "magneticField",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 5
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-09",
          "url": "https://services.swpc.noaa.gov/products/noaa-planetary-k-index.json",
          "format": "json",
          "category": "analysis",
          "detail": "Geomagnetic index derived from measurements, presented as current/historical analysis; not an unconditional forecast.",
          "family_ids": [
            "noaa-kp"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "kp",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 300,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            },
            {
              "implementation": "legacy",
              "source_key": "kp",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-10",
          "url": "https://services.swpc.noaa.gov/products/kyoto-dst.json",
          "format": "json",
          "category": "analysis",
          "detail": "Geomagnetic index derived from measurements, presented as current/historical analysis; not an unconditional forecast.",
          "family_ids": [
            "noaa-dst"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "dst",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 300,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-11",
          "url": "https://services.swpc.noaa.gov/json/goes/primary/xrays-7-day.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "goes-xray"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "xray",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-12",
          "url": "https://services.swpc.noaa.gov/json/goes/primary/integral-protons-7-day.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "goes-protons"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "protons",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-13",
          "url": "https://services.swpc.noaa.gov/products/summary/10cm-flux.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-f107"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "f107",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 1800,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-14",
          "url": "https://services.swpc.noaa.gov/products/10cm-flux-30-day.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-f107"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "f107",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 1800,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 2
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-15",
          "url": "https://services.swpc.noaa.gov/json/f107_cm_flux.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "noaa-f107"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "f107",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 1800,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 3
            },
            {
              "implementation": "legacy",
              "source_key": "f107",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 300,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-16",
          "url": "https://services.swpc.noaa.gov/products/alerts.json",
          "format": "json",
          "category": "analysis",
          "detail": "Issued event/warning knowledge; individual product may be warning, watch or alert. Preserve provider issue time and product ID.",
          "family_ids": [
            "noaa-alerts"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "alerts",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 300,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            },
            {
              "implementation": "legacy",
              "source_key": "alerts",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 90,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-17",
          "url": "https://services.swpc.noaa.gov/products/noaa-scales.json",
          "format": "json",
          "category": "analysis",
          "detail": "NOAA scale product may contain present and future-day entries. Preserve returned issue/valid metadata; no literal original publication schedule.",
          "family_ids": [
            "noaa-alerts"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "scales",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 300,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            },
            {
              "implementation": "legacy",
              "source_key": "scales",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-18",
          "url": "https://services.swpc.noaa.gov/json/ovation_aurora_latest.json",
          "format": "json",
          "category": "forecast",
          "detail": "OVATION probability model; original parser recognizes Observation_Time and Forecast_Time independently. Do not collapse forecast valid time into observation time.",
          "family_ids": [
            "noaa-ovation"
          ],
          "original_consumers": [
            {
              "implementation": "v1",
              "source_key": "aurora",
              "file": "lib/open-space/environment-v1.js",
              "cache_ttl_seconds": 300,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            },
            {
              "implementation": "legacy",
              "source_key": "aurora",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 120,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-19",
          "url": "https://services.swpc.noaa.gov/json/geospace/geospace_dst_1_hour.json",
          "format": "json",
          "category": "analysis",
          "detail": "Geomagnetic index derived from measurements, presented as current/historical analysis; not an unconditional forecast.",
          "family_ids": [
            "noaa-dst"
          ],
          "original_consumers": [
            {
              "implementation": "legacy",
              "source_key": "dst",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-20",
          "url": "https://services.swpc.noaa.gov/json/goes/primary/xrays-6-hour.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "goes-xray"
          ],
          "original_consumers": [
            {
              "implementation": "legacy",
              "source_key": "xray",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        },
        {
          "id": "space-product-21",
          "url": "https://services.swpc.noaa.gov/json/goes/primary/integral-protons-1-day.json",
          "format": "json",
          "category": "observed",
          "detail": "Time series or summary of reported measurements; feed lookback is not publication cadence.",
          "family_ids": [
            "goes-protons"
          ],
          "original_consumers": [
            {
              "implementation": "legacy",
              "source_key": "protons",
              "file": "lib/open-space/environment.js",
              "cache_ttl_seconds": 60,
              "poll_interval_seconds": null,
              "fetch_trigger": "request-driven cache miss/expiry or explicit invalidation",
              "fallback_priority": 1
            }
          ],
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          }
        }
      ],
      "image_sources": [
        {
          "id": "sdo-aia-171",
          "name": "SDO AIA 171 Å",
          "mission": "NASA Solar Dynamics Observatory",
          "band": "Extreme ultraviolet",
          "description": "Coronal loops and active-region magnetic structure.",
          "credit": "NASA/GSFC/SDO/AIA",
          "family_id": "nasa-sdo",
          "category": "imagery",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "v1": {
            "file": "lib/open-space/environment-v1.js",
            "url": "https://sdo.gsfc.nasa.gov/assets/img/latest/latest_1024_0171.jpg",
            "proxy_path": "/api/space/environment/v1/images/sdo-aia-171",
            "cache_ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 86400,
            "downstream_http_max_age_seconds": 120
          },
          "legacy": {
            "file": "lib/open-space/environment.js",
            "url": "https://sdo.gsfc.nasa.gov/assets/img/latest/latest_1024_0171.jpg",
            "resolver": null,
            "proxy_path": "/api/space/environment/images/sdo-aia-171",
            "cache_ttl_seconds": 60,
            "downstream_http_max_age_seconds": 45
          },
          "timestamp_roles": {
            "observed_at": "No acquisition timestamp extracted by original image loaders; do not label retrieval time as imagery acquisition time.",
            "fetched_at": "Retrieval/probe time in original code"
          }
        },
        {
          "id": "sdo-aia-193",
          "name": "SDO AIA 193 Å",
          "mission": "NASA Solar Dynamics Observatory",
          "band": "Extreme ultraviolet",
          "description": "Hot corona, active regions and coronal-hole structure.",
          "credit": "NASA/GSFC/SDO/AIA",
          "family_id": "nasa-sdo",
          "category": "imagery",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "v1": {
            "file": "lib/open-space/environment-v1.js",
            "url": "https://sdo.gsfc.nasa.gov/assets/img/latest/latest_1024_0193.jpg",
            "proxy_path": "/api/space/environment/v1/images/sdo-aia-193",
            "cache_ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 86400,
            "downstream_http_max_age_seconds": 120
          },
          "legacy": {
            "file": "lib/open-space/environment.js",
            "url": "https://sdo.gsfc.nasa.gov/assets/img/latest/latest_1024_0193.jpg",
            "resolver": null,
            "proxy_path": "/api/space/environment/images/sdo-aia-193",
            "cache_ttl_seconds": 60,
            "downstream_http_max_age_seconds": 45
          },
          "timestamp_roles": {
            "observed_at": "No acquisition timestamp extracted by original image loaders; do not label retrieval time as imagery acquisition time.",
            "fetched_at": "Retrieval/probe time in original code"
          }
        },
        {
          "id": "sdo-aia-304",
          "name": "SDO AIA 304 Å",
          "mission": "NASA Solar Dynamics Observatory",
          "band": "Extreme ultraviolet",
          "description": "Chromosphere and transition-region activity.",
          "credit": "NASA/GSFC/SDO/AIA",
          "family_id": "nasa-sdo",
          "category": "imagery",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "v1": {
            "file": "lib/open-space/environment-v1.js",
            "url": "https://sdo.gsfc.nasa.gov/assets/img/latest/latest_1024_0304.jpg",
            "proxy_path": "/api/space/environment/v1/images/sdo-aia-304",
            "cache_ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 86400,
            "downstream_http_max_age_seconds": 120
          },
          "legacy": {
            "file": "lib/open-space/environment.js",
            "url": "https://sdo.gsfc.nasa.gov/assets/img/latest/latest_1024_0304.jpg",
            "resolver": null,
            "proxy_path": "/api/space/environment/images/sdo-aia-304",
            "cache_ttl_seconds": 60,
            "downstream_http_max_age_seconds": 45
          },
          "timestamp_roles": {
            "observed_at": "No acquisition timestamp extracted by original image loaders; do not label retrieval time as imagery acquisition time.",
            "fetched_at": "Retrieval/probe time in original code"
          }
        },
        {
          "id": "sdo-hmi-magnetogram",
          "name": "SDO HMI Magnetogram",
          "mission": "NASA Solar Dynamics Observatory",
          "band": "Photospheric magnetic field",
          "description": "Line-of-sight magnetic polarity and active-region context.",
          "credit": "NASA/GSFC/SDO/HMI",
          "family_id": "nasa-sdo",
          "category": "imagery",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "v1": {
            "file": "lib/open-space/environment-v1.js",
            "url": "https://sdo.gsfc.nasa.gov/assets/img/latest/latest_1024_HMIB.jpg",
            "proxy_path": "/api/space/environment/v1/images/sdo-hmi-magnetogram",
            "cache_ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 86400,
            "downstream_http_max_age_seconds": 120
          },
          "legacy": {
            "file": "lib/open-space/environment.js",
            "url": "https://sdo.gsfc.nasa.gov/assets/img/latest/latest_1024_HMIB.jpg",
            "resolver": null,
            "proxy_path": "/api/space/environment/images/sdo-hmi-magnetogram",
            "cache_ttl_seconds": 60,
            "downstream_http_max_age_seconds": 45
          },
          "timestamp_roles": {
            "observed_at": "No acquisition timestamp extracted by original image loaders; do not label retrieval time as imagery acquisition time.",
            "fetched_at": "Retrieval/probe time in original code"
          }
        },
        {
          "id": "stereo-a-euvi-195",
          "name": "STEREO-A EUVI 195 Å",
          "mission": "NASA STEREO-A",
          "band": "Extreme ultraviolet",
          "description": "A second solar vantage point for active regions and transients.",
          "credit": "NASA/STEREO/SECCHI",
          "family_id": "nasa-stereo",
          "category": "imagery",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "v1": {
            "file": "lib/open-space/environment-v1.js",
            "url": "https://stereo-ssc.nascom.nasa.gov/beacon/latest_256/ahead_euvi_195_latest.jpg",
            "proxy_path": "/api/space/environment/v1/images/stereo-a-euvi-195",
            "cache_ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 86400,
            "downstream_http_max_age_seconds": 120
          },
          "legacy": {
            "file": "lib/open-space/environment.js",
            "url": "https://stereo-ssc.nascom.nasa.gov/beacon/latest_512/ahead_euvi_195_latest.jpg",
            "resolver": null,
            "proxy_path": "/api/space/environment/images/stereo-a-euvi-195",
            "cache_ttl_seconds": 60,
            "downstream_http_max_age_seconds": 45
          },
          "timestamp_roles": {
            "observed_at": "No acquisition timestamp extracted by original image loaders; do not label retrieval time as imagery acquisition time.",
            "fetched_at": "Retrieval/probe time in original code"
          }
        },
        {
          "id": "soho-lasco-c2",
          "name": "SOHO LASCO C2",
          "mission": "ESA/NASA SOHO",
          "band": "White-light coronagraph",
          "description": "The middle corona, including outward-moving CME structure.",
          "credit": "ESA/NASA SOHO/LASCO",
          "family_id": "soho-lasco",
          "category": "imagery",
          "credential_requirement": "public-no-credential",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "v1": {
            "file": "lib/open-space/environment-v1.js",
            "url": "https://soho.nascom.nasa.gov/data/realtime/c2/1024/latest.jpg",
            "proxy_path": "/api/space/environment/v1/images/soho-lasco-c2",
            "cache_ttl_seconds": 300,
            "maximum_stale_on_error_seconds": 86400,
            "downstream_http_max_age_seconds": 120
          },
          "legacy": {
            "file": "lib/open-space/environment.js",
            "url": null,
            "resolver": "lasco-c2",
            "proxy_path": "/api/space/environment/images/soho-lasco-c2",
            "cache_ttl_seconds": 60,
            "animation_catalog_url": "https://services.swpc.noaa.gov/products/animations/lasco-c2.json",
            "animation_catalog_cache_ttl_seconds": 60,
            "downstream_http_max_age_seconds": 45
          },
          "timestamp_roles": {
            "observed_at": "No acquisition timestamp extracted by original image loaders; do not label retrieval time as imagery acquisition time.",
            "fetched_at": "Retrieval/probe time in original code"
          }
        }
      ],
      "legacy_lasco_animation": {
        "id": "legacy-lasco-c2-animation",
        "visual_id": "soho-lasco-c2",
        "family_ids": [
          "soho-lasco",
          "nasa-stereo-soho-imagery"
        ],
        "category": "imagery",
        "format": "json image catalog",
        "url": "https://services.swpc.noaa.gov/products/animations/lasco-c2.json",
        "cache_ttl_seconds": 60,
        "credential_requirement": "public-no-credential",
        "resolver": "Recursively gather URL/image/file/path values, select last jpg/jpeg/png/gif candidate (otherwise last URL), resolve relative URL against catalog URL, then fetch selected image.",
        "resolved_image_url": null,
        "resolved_image_url_note": "Provider catalog determines the runtime URL; no fixed image URL is present in legacy source.",
        "evidence": "lib/open-space/environment.js:319-330,721-739",
        "provider_issue_cadence": {
          "provider_issue_interval_seconds": null,
          "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
          "changed": false
        }
      },
      "hapi_missions": [
        {
          "id": "ace",
          "source_id": "nasa-ace-hapi",
          "name": "ACE MFI",
          "category": "archive",
          "archive_content": "observed magnetic-field measurements",
          "base_url": "https://cdaweb.gsfc.nasa.gov/hapi",
          "credential_requirement": "public-no-credential",
          "coordinate_frame": "GSE",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "sampling_interval_seconds": 16,
          "sampling_evidence": "Bundled docs/SOURCES.md and THIRD_PARTY_DATA.md; measurement averaging interval, not provider publication cadence.",
          "implementations": {
            "v1": {
              "file": "lib/open-space/environment-v1.js",
              "dataset_id": "AC_H0_MFI",
              "base_dataset_id": "AC_H0_MFI",
              "info_url": "https://cdaweb.gsfc.nasa.gov/hapi/info?id=AC_H0_MFI",
              "data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=AC_H0_MFI&parameters={parameter}&time.min={startISOString}&time.max={stopISOString}&format=json",
              "fallback_data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=AC_H0_MFI&parameters={parameter}&format=json&start={startISOString}&stop={stopISOString}",
              "parameters": null,
              "parameter_selection": "First info parameter whose name/description matches ordered preferred patterns; otherwise first numeric parameter.",
              "preferred_parameter_patterns": [
                "/magnitude/i",
                "/\\bbt\\b/i",
                "/bgse/i",
                "/magnetic.*field/i"
              ],
              "query_window_hours": 12,
              "window_anchor": "info.stopDate || info.stop || current time",
              "cache_ttl_seconds": 900,
              "maximum_stale_on_error_seconds": 604800
            },
            "legacy": {
              "file": "lib/open-space/environment.js",
              "dataset_id": "AC_H0_MFI",
              "info_url": "https://cdaweb.gsfc.nasa.gov/hapi/info?id=AC_H0_MFI",
              "data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=AC_H0_MFI&parameters=Magnitude%2CBGSEc&time.min={startISOString}&time.max={endISOString}&format=json",
              "parameters": [
                "Magnitude",
                "BGSEc"
              ],
              "query_window_minutes": [
                60,
                360,
                1440,
                4320
              ],
              "window_anchor": "Latest archive stop minus 1 second; fallback archive stop is current time minus 30 days if info stop is absent.",
              "cache_ttl_seconds": 1800
            }
          },
          "timestamp_roles": {
            "observed_at": "Last returned measurement timestamp",
            "archive_stop": "Provider archive availability endpoint; does not establish issue cadence",
            "fetched_at": "Client retrieval time; distinct from measurement time"
          }
        },
        {
          "id": "mms",
          "source_id": "nasa-mms-hapi",
          "name": "MMS1 FGM",
          "category": "archive",
          "archive_content": "observed magnetic-field measurements",
          "base_url": "https://cdaweb.gsfc.nasa.gov/hapi",
          "credential_requirement": "public-no-credential",
          "coordinate_frame": "GSE",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "sampling_interval_seconds": null,
          "sampling_evidence": "Not specified in bundled source metadata.",
          "implementations": {
            "v1": {
              "file": "lib/open-space/environment-v1.js",
              "dataset_id": "MMS1_FGM_SRVY_L2@0",
              "base_dataset_id": "MMS1_FGM_SRVY_L2",
              "info_url": "https://cdaweb.gsfc.nasa.gov/hapi/info?id=MMS1_FGM_SRVY_L2%400",
              "data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=MMS1_FGM_SRVY_L2%400&parameters={parameter}&time.min={startISOString}&time.max={stopISOString}&format=json",
              "fallback_data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=MMS1_FGM_SRVY_L2%400&parameters={parameter}&format=json&start={startISOString}&stop={stopISOString}",
              "parameters": [
                "mms1_fgm_b_gse_srvy_l2"
              ],
              "parameter_selection": "Explicit configured parameter; used even if missing from info response.",
              "preferred_parameter_patterns": [
                "/mms1_fgm_b_gse_srvy_l2/i",
                "/b.*gse/i",
                "/fgm.*b/i",
                "/magnetic.*field/i"
              ],
              "query_window_hours": 12,
              "window_anchor": "info.stopDate || info.stop || current time",
              "cache_ttl_seconds": 900,
              "maximum_stale_on_error_seconds": 604800
            },
            "legacy": {
              "file": "lib/open-space/environment.js",
              "dataset_id": "MMS1_FGM_SRVY_L2",
              "info_url": "https://cdaweb.gsfc.nasa.gov/hapi/info?id=MMS1_FGM_SRVY_L2",
              "data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=MMS1_FGM_SRVY_L2&parameters=mms1_fgm_b_gse_srvy_l2&time.min={startISOString}&time.max={endISOString}&format=json",
              "parameters": [
                "mms1_fgm_b_gse_srvy_l2"
              ],
              "query_window_minutes": [
                2,
                15,
                120,
                720
              ],
              "window_anchor": "Latest archive stop minus 1 second; fallback archive stop is current time minus 30 days if info stop is absent.",
              "cache_ttl_seconds": 1800
            }
          },
          "timestamp_roles": {
            "observed_at": "Last returned measurement timestamp",
            "archive_stop": "Provider archive availability endpoint; does not establish issue cadence",
            "fetched_at": "Client retrieval time; distinct from measurement time"
          }
        },
        {
          "id": "parker",
          "source_id": "nasa-parker-hapi",
          "name": "Parker Solar Probe FIELDS",
          "category": "archive",
          "archive_content": "observed magnetic-field measurements",
          "base_url": "https://cdaweb.gsfc.nasa.gov/hapi",
          "credential_requirement": "public-no-credential",
          "coordinate_frame": "RTN",
          "provider_issue_cadence": {
            "provider_issue_interval_seconds": null,
            "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
            "changed": false
          },
          "sampling_interval_seconds": 60,
          "sampling_evidence": "Bundled docs/SOURCES.md and THIRD_PARTY_DATA.md; measurement averaging interval, not provider publication cadence.",
          "implementations": {
            "v1": {
              "file": "lib/open-space/environment-v1.js",
              "dataset_id": "PSP_FLD_L2_MAG_RTN_1MIN",
              "base_dataset_id": "PSP_FLD_L2_MAG_RTN_1MIN",
              "info_url": "https://cdaweb.gsfc.nasa.gov/hapi/info?id=PSP_FLD_L2_MAG_RTN_1MIN",
              "data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=PSP_FLD_L2_MAG_RTN_1MIN&parameters={parameter}&time.min={startISOString}&time.max={stopISOString}&format=json",
              "fallback_data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=PSP_FLD_L2_MAG_RTN_1MIN&parameters={parameter}&format=json&start={startISOString}&stop={stopISOString}",
              "parameters": null,
              "parameter_selection": "First info parameter whose name/description matches ordered preferred patterns; otherwise first numeric parameter.",
              "preferred_parameter_patterns": [
                "/mag.*rtn/i",
                "/\\brtn\\b/i",
                "/magnetic.*field/i"
              ],
              "query_window_hours": 12,
              "window_anchor": "info.stopDate || info.stop || current time",
              "cache_ttl_seconds": 900,
              "maximum_stale_on_error_seconds": 604800
            },
            "legacy": {
              "file": "lib/open-space/environment.js",
              "dataset_id": "PSP_FLD_L2_MAG_RTN_1MIN",
              "info_url": "https://cdaweb.gsfc.nasa.gov/hapi/info?id=PSP_FLD_L2_MAG_RTN_1MIN",
              "data_url_template": "https://cdaweb.gsfc.nasa.gov/hapi/data?id=PSP_FLD_L2_MAG_RTN_1MIN&parameters=psp_fld_l2_mag_RTN_1min&time.min={startISOString}&time.max={endISOString}&format=json",
              "parameters": [
                "psp_fld_l2_mag_RTN_1min"
              ],
              "query_window_minutes": [
                180,
                1440,
                10080
              ],
              "window_anchor": "Latest archive stop minus 1 second; fallback archive stop is current time minus 30 days if info stop is absent.",
              "cache_ttl_seconds": 1800
            }
          },
          "timestamp_roles": {
            "observed_at": "Last returned measurement timestamp",
            "archive_stop": "Provider archive availability endpoint; does not establish issue cadence",
            "fetched_at": "Client retrieval time; distinct from measurement time"
          }
        }
      ],
      "donki": {
        "source_id": "nasa-donki",
        "legacy_source_id": "nasa-donki-events",
        "category": "analysis",
        "product_type": "event-knowledge",
        "base_url": "https://api.nasa.gov/DONKI",
        "credential_requirement": "nasa-donki-api-key",
        "query_parameters": {
          "startDate": "Current UTC date minus 7 days (YYYY-MM-DD)",
          "endDate": "Current UTC date (YYYY-MM-DD)",
          "api_key": "Server-side option nasaApiKey or OPENSPACE_NASA_API_KEY; DEMO_KEY fallback"
        },
        "endpoints": [
          {
            "endpoint": "FLR",
            "url": "https://api.nasa.gov/DONKI/FLR",
            "url_template": "https://api.nasa.gov/DONKI/FLR?startDate={YYYY-MM-DD}&endDate={YYYY-MM-DD}&api_key={NASA_API_KEY}",
            "v1_key": "flares",
            "legacy_kind": "solar-flare"
          },
          {
            "endpoint": "CME",
            "url": "https://api.nasa.gov/DONKI/CME",
            "url_template": "https://api.nasa.gov/DONKI/CME?startDate={YYYY-MM-DD}&endDate={YYYY-MM-DD}&api_key={NASA_API_KEY}",
            "v1_key": "cmes",
            "legacy_kind": "coronal-mass-ejection"
          },
          {
            "endpoint": "GST",
            "url": "https://api.nasa.gov/DONKI/GST",
            "url_template": "https://api.nasa.gov/DONKI/GST?startDate={YYYY-MM-DD}&endDate={YYYY-MM-DD}&api_key={NASA_API_KEY}",
            "v1_key": "geomagnetic_storms",
            "legacy_kind": "geomagnetic-storm"
          },
          {
            "endpoint": "SEP",
            "url": "https://api.nasa.gov/DONKI/SEP",
            "url_template": "https://api.nasa.gov/DONKI/SEP?startDate={YYYY-MM-DD}&endDate={YYYY-MM-DD}&api_key={NASA_API_KEY}",
            "v1_key": "solar_energetic_particles",
            "legacy_kind": "solar-energetic-particle"
          }
        ],
        "original_cache": {
          "v1_ttl_seconds": 1200,
          "legacy_ttl_seconds": 600,
          "v1_maximum_stale_on_error_seconds": 86400
        },
        "provider_issue_cadence": {
          "provider_issue_interval_seconds": null,
          "provider_issue_schedule": "Not specified in original code or bundled source documentation; cache TTL, sampling interval and lookback window do not establish provider publication cadence.",
          "changed": false
        },
        "timestamp_roles": {
          "event_time": "Event record timestamp; preserve actual event time",
          "original_v1_observed_at": "Retrieval time assigned by original donki() loader, not a provider observation or issue time",
          "provider_issue_time": "Only if present in individual provider record"
        }
      },
      "donki_notifications": {
        "id": "nasa-donki-notifications",
        "name": "NASA DONKI notifications",
        "provider": "NASA CCMC / M2M",
        "category": "research notifications",
        "endpoint": "https://ccmc.gsfc.nasa.gov/DONKI-API/get/notifications",
        "credential_requirement": "Public NASA CCMC endpoint; no key sent. Saved gateway key remains private and unused.",
        "description": "Issued NASA research notifications for the last seven days. Global/heliospheric context, not official NOAA warnings, local port alerts, or training observations. Issue time and acquisition time are separate.",
        "type": "all",
        "training_eligible": false
      },
      "polling": [
        {
          "component": "v1 browser environment panel",
          "file": "public/open-space/open-space-v1.js",
          "poll_interval_seconds": 60,
          "target": "/api/space/environment/v1/summary",
          "forces_invalidation": false
        },
        {
          "component": "Legacy browser environment panel",
          "file": "public/open-space/app.js",
          "poll_interval_seconds": 300,
          "target": "/api/space/environment/summary",
          "condition": "Only while environment tab active",
          "local_response_reuse_seconds": 60,
          "forces_invalidation": false
        },
        {
          "component": "v1 browser overlays",
          "file": "public/open-space/open-space-overlays.js",
          "poll_interval_seconds": 60,
          "target": "/api/space/environment/v1/overlays?refresh=1",
          "forces_invalidation": true,
          "note": "Original interval calls load(true), so every periodic overlay request clears the entire v1 cache."
        },
        {
          "component": "Laptop overlay patch template",
          "file": "laptop/tools/patch_environment_overlays.py",
          "poll_interval_seconds": 60,
          "environment_variable": "OPENSPACE_ENVIRONMENT_OVERLAY_REFRESH",
          "configurable_min_seconds": 15,
          "configurable_max_seconds": 3600,
          "note": "Client polling of OpenSpace overlay endpoint; not direct provider publication cadence."
        }
      ],
      "semantic_categories": {
        "observed": "Reported measurements such as solar-wind, magnetic-field and GOES flux records.",
        "forecast": "Model product with a forecast valid time, including OVATION.",
        "analysis": "Computed indices, propagated values, alerts/scales and event knowledge. Mixed valid-time products retain provider metadata.",
        "imagery": "Solar image bytes, frame catalogs and packaged Earth imagery, preserving source credit and acquisition time when supplied.",
        "archive": "Mission science records from HAPI with returned archive stop time; distinguish acquisition lag from fetch freshness."
      },
      "derived_products": {
        "file": "lib/open-space/environment-overlays.js",
        "overlay_definitions": [
          {
            "id": "auroral-oval",
            "name": "Auroral Oval",
            "short_name": "AURORA",
            "description": "North and south auroral-oval bands driven by NOAA OVATION probability.",
            "source_ids": [
              "noaa-ovation"
            ],
            "type": "auroral-oval",
            "default_enabled": true,
            "display_semantics": "schematic-geographic"
          },
          {
            "id": "imf-vector",
            "name": "Interplanetary Magnetic Field",
            "short_name": "IMF VECTOR",
            "description": "Current IMF vector and field strength from the NOAA L1 magnetic-field feed.",
            "source_ids": [
              "noaa-imf"
            ],
            "type": "vector",
            "default_enabled": true,
            "display_semantics": "sun-earth-display-frame"
          },
          {
            "id": "solar-wind-flow",
            "name": "Solar-Wind Flow",
            "short_name": "SOLAR WIND",
            "description": "Sunward-to-Earth particle-flow streamlines scaled by current speed and density.",
            "source_ids": [
              "noaa-plasma"
            ],
            "type": "flow-field",
            "default_enabled": true,
            "display_semantics": "sun-earth-display-frame"
          },
          {
            "id": "radiation-state",
            "name": "Radiation State",
            "short_name": "RADIATION",
            "description": "A radiation shell derived from GOES X-ray class and >10 MeV proton flux.",
            "source_ids": [
              "goes-xray",
              "goes-protons"
            ],
            "type": "radiation-shell",
            "default_enabled": false,
            "display_semantics": "schematic-earth-shell"
          },
          {
            "id": "geomagnetic-shell",
            "name": "Geomagnetic Shell",
            "short_name": "GEOMAGNETIC",
            "description": "A compressed magnetospheric shell and field-line cage scaled by Kp and Dst.",
            "source_ids": [
              "noaa-kp",
              "noaa-dst"
            ],
            "type": "geomagnetic-shell",
            "default_enabled": true,
            "display_semantics": "schematic-magnetosphere"
          },
          {
            "id": "mission-field-vectors",
            "name": "Mission Field Vectors",
            "short_name": "MISSION VECTORS",
            "description": "Latest ACE, MMS and Parker Solar Probe magnetic-field vectors with archive age.",
            "source_ids": [
              "nasa-ace-hapi",
              "nasa-mms-hapi",
              "nasa-parker-hapi"
            ],
            "type": "mission-vectors",
            "default_enabled": false,
            "display_semantics": "schematic-mission-anchors"
          }
        ],
        "upstream_fetches": false,
        "notes": "OpenSpace posture, impacts and overlays derive from environment products and must retain their derived status; they are not additional provider feeds."
      },
      "other_catalog_scope": {
        "status": "audited separately from implemented environment provider products",
        "file": "lib/open-space/core-v0.2.js",
        "source_count": 8,
        "sources": [
          {
            "id": "celestrak-norad-debris",
            "name": "CelesTrak / NORAD Debris Sample",
            "kind": "live-orbital-catalog",
            "provider": "CelesTrak",
            "adapter": "celestrak-gp-sgp4",
            "formats": [
              "TLE",
              "GP JSON"
            ],
            "propagation": "SGP4",
            "output_schema": "openviz.entity-state/1.0",
            "status": "available",
            "enabled": true,
            "sample": true,
            "description": "Current NORAD general-perturbation elements downloaded from CelesTrak and propagated by the HP OpenSpace agent with SGP4.",
            "configuration": {
              "groups": [
                "FENGYUN 1C DEB",
                "IRIDIUM 33 DEB",
                "COSMOS 2251 DEB"
              ],
              "sample_counts": {
                "fengyun_1c": 1949,
                "iridium_33": 110,
                "cosmos_2251": 584,
                "total": 2643
              },
              "refresh_seconds": 21600,
              "renderer_profile": "space-orbital"
            },
            "implementation_status": "native-renderer integration; server stores catalog metadata only",
            "fetch_url": null,
            "declared_refresh_seconds": 21600,
            "provider_issue_interval_seconds": null,
            "notes": "Literal refresh_seconds is catalog configuration, not a server provider scheduler. Shipped source does not include the live agent CelesTrak fetch/SGP4 implementation; renderer migration scripts export that runtime from HP. No literal upstream CelesTrak URL found in shipped text source."
          },
          {
            "id": "openviz-scene-stream",
            "name": "OpenViz Scene Stream",
            "kind": "renderer-neutral-scene-stream",
            "provider": "OpenViz",
            "adapter": "openviz-scene",
            "formats": [
              "openviz.scene/1.0",
              "openviz.entity-state/1.0"
            ],
            "status": "contract-available",
            "enabled": false,
            "sample": false,
            "description": "Shared scene protocol that isolates OpenC5ISR operational data from OpenSceneGraph, VulkanSceneGraph and other rendering implementations.",
            "implementation_status": "contract/catalog entry",
            "fetch_url": null
          },
          {
            "id": "openviz-environment-overlays",
            "name": "OpenViz Space Environment Overlays",
            "kind": "renderer-neutral-environment-layers",
            "provider": "OpenSpace Environment Service",
            "adapter": "openviz.environment-overlays-to-osg",
            "formats": [
              "openviz.environment-overlays/1.0"
            ],
            "output_schema": "openviz.environment-overlays/1.0",
            "status": "available",
            "enabled": true,
            "sample": false,
            "description": "Selectable auroral, solar-wind, IMF, radiation, geomagnetic and mission-vector layers delivered to renderer adapters without leaking scene-graph objects into OpenC5ISR data models.",
            "implementation_status": "implemented derived environment output and renderer integration",
            "fetch_url": null,
            "notes": "External data providers are already accounted for by environment families."
          },
          {
            "id": "open-track-space",
            "name": "OpenTrack Space Objects",
            "kind": "operational-track-stream",
            "provider": "OpenTrack / OpenBus",
            "adapter": "opentrack-openviz",
            "formats": [
              "OpenC5ISR object state",
              "OpenBus events"
            ],
            "output_schema": "openviz.entity-state/1.0",
            "status": "adapter-slot",
            "enabled": false,
            "sample": false,
            "description": "Live operational tracks projected into the OpenViz common scene model.",
            "implementation_status": "disabled catalog integration slot",
            "fetch_url": null
          },
          {
            "id": "ephemeris-omm-file",
            "name": "Ephemeris / OMM / TLE File",
            "kind": "file-or-dataset",
            "provider": "Operator supplied",
            "adapter": "ephemeris-file",
            "formats": [
              "OMM",
              "TLE",
              "OEM",
              "CSV",
              "JSON"
            ],
            "output_schema": "openviz.entity-state/1.0",
            "status": "adapter-slot",
            "enabled": false,
            "sample": false,
            "description": "Recorded or mission-provided orbital data loaded as a scenario source.",
            "implementation_status": "disabled catalog integration slot for operator-supplied files",
            "fetch_url": null
          },
          {
            "id": "sensor-observation-stream",
            "name": "Space Sensor Observations",
            "kind": "sensor-stream",
            "provider": "OpenSSA / OpenISAC / external sensor",
            "adapter": "sensor-openviz",
            "formats": [
              "detections",
              "angles",
              "range",
              "track updates"
            ],
            "output_schema": "openviz.entity-state/1.0",
            "status": "adapter-slot",
            "enabled": false,
            "sample": false,
            "description": "Sensor detections, coverage, uncertainty and derived tracks rendered with the operational picture.",
            "implementation_status": "disabled catalog integration slot",
            "fetch_url": null
          },
          {
            "id": "synthetic-hypersonic-model",
            "name": "Synthetic High-Fidelity Hypersonic Vehicle",
            "kind": "synthetic-physics-model",
            "provider": "OpenLVC / OpenAnalytics model adapter",
            "adapter": "hypersonic-model-openviz",
            "formats": [
              "time-tagged 6-DOF state",
              "trajectory",
              "uncertainty",
              "sensor visibility"
            ],
            "output_schema": "openviz.entity-state/1.0",
            "status": "adapter-slot",
            "enabled": false,
            "sample": false,
            "description": "A virtual high-fidelity hypersonic missile or glide vehicle generated by a physics model and injected into the same 3D COP.",
            "configuration": {
              "model_endpoint": "",
              "state_rate_hz": 20,
              "renderer_profile": "near-space-hypersonic"
            },
            "implementation_status": "disabled catalog integration slot",
            "fetch_url": null,
            "notes": "Empty model_endpoint; configured state_rate_hz 20 is not an implemented provider feed cadence."
          },
          {
            "id": "open-aar-replay",
            "name": "OpenAAR Recorded Replay",
            "kind": "recorded-replay",
            "provider": "OpenAAR-MR",
            "adapter": "openaar-openviz",
            "formats": [
              "recorded OpenBus events",
              "state frames"
            ],
            "output_schema": "openviz.scene/1.0",
            "status": "adapter-slot",
            "enabled": false,
            "sample": false,
            "description": "Recorded operations replayed against the same scene clock for review and rehearsal.",
            "implementation_status": "disabled catalog replay integration slot",
            "fetch_url": null
          }
        ],
        "scenarios": [
          {
            "id": "celestrak-debris-sample",
            "name": "CelesTrak Real Space Debris",
            "description": "First OpenSpace sample scenario: the FENGYUN-1C, IRIDIUM-33 and COSMOS-2251 debris families. NORAD elements are propagated with SGP4.",
            "source_ids": [
              "celestrak-norad-debris"
            ],
            "scene_schema": "openviz.scene/1.0",
            "renderer_profile": "space-orbital",
            "mode": "latest",
            "speed": 1,
            "required_capabilities": [
              "celestrak-norad-debris",
              "sgp4",
              "openviz.scene/1.0",
              "openspace.osg.viewer",
              "outbound-mjpeg-uplink"
            ],
            "status": "available",
            "sample": true
          },
          {
            "id": "mixed-live-synthetic-template",
            "name": "Mixed Live + Synthetic Mission Template",
            "description": "Template combining live catalog data, OpenTrack objects, sensor coverage and a high-fidelity synthetic hypersonic vehicle.",
            "source_ids": [
              "celestrak-norad-debris",
              "open-track-space",
              "sensor-observation-stream",
              "synthetic-hypersonic-model"
            ],
            "scene_schema": "openviz.scene/1.0",
            "renderer_profile": "near-space-hypersonic",
            "mode": "latest",
            "speed": 1,
            "required_capabilities": [
              "scenario-source-config",
              "openviz.scene/1.0"
            ],
            "status": "template",
            "sample": false
          }
        ],
        "server_behavior": {
          "source_routes": [
            "GET /api/space/sources",
            "POST /api/space/sources",
            "GET /api/space/scenarios",
            "POST /api/space/scenarios"
          ],
          "custom_sources": "Definitions can be stored; creation does not automatically implement upstream ingestion.",
          "scenario_execution": "Dispatches an agent command; native renderer performs orbital processing.",
          "browser_authorization": "Delegated to host OpenC5ISR/OpenSOF site per docs/SECURITY.md."
        },
        "local_configuration": [
          {
            "environment_variable": "OPENSPACE_AGENT_TOKEN",
            "configuration_option": "agentToken",
            "default": "",
            "scope": "Incoming agent registration, heartbeat, subscriptions and video authentication; not an upstream provider credential",
            "evidence": "lib/open-space/core-v0.2.js:269,325"
          },
          {
            "environment_variable": "OPENSPACE_REPORT_TOKEN",
            "configuration_option": "reportToken",
            "default": "",
            "scope": "Incoming report service authentication; not an upstream provider credential",
            "evidence": "lib/open-space/reports.js:32"
          },
          {
            "environment_variable": "OPENSPACE_STATE_FILE",
            "default": "",
            "scope": "Optional custom source/scenario persistence",
            "evidence": "lib/open-space/core-v0.2.js:268"
          },
          {
            "environment_variable": "OPENSPACE_CELESTRAK",
            "literal_value": "1",
            "scope": "Native renderer configuration",
            "evidence": "migration/install-renderer-on-nexus.sh:203"
          },
          {
            "environment_variable": "OPENSPACE_CELESTRAK_ROOT",
            "literal_value": "$INSTALL_DIR/data/celestrak",
            "scope": "Native renderer local orbital data path",
            "evidence": "migration/install-renderer-on-nexus.sh:204"
          },
          {
            "environment_variable": "OPENSPACE_REMOTE_URL",
            "literal_example": "https://openc5isr.bss.dev",
            "scope": "OpenSpace host gateway; not external provider",
            "evidence": "laptop/config/openspace-video.env.example:2"
          },
          {
            "environment_variable": "OPENSPACE_VIDEO_REMOTE_URL",
            "literal_example": "https://openc5isr.bss.dev",
            "scope": "OpenSpace video gateway; not external provider",
            "evidence": "laptop/config/openspace-video.env.example:3"
          },
          {
            "environment_variable": "OPENSPACE_LOCAL_HEALTH_URL",
            "literal_example": "http://127.0.0.1:7811/health",
            "scope": "Local renderer health endpoint; not external provider",
            "evidence": "laptop/config/openspace-video.env.example:11"
          }
        ],
        "packaged_imagery": [
          {
            "id": "earth-blue-marble-texture",
            "category": "imagery",
            "type": "packaged static Earth texture",
            "local_file": "laptop/assets/earth-blue-marble.jpg",
            "url": "https://eoimages.gsfc.nasa.gov/images/imagerecords/57000/57752/land_shallow_topo_2048.jpg",
            "provider": "NASA Earth Observatory / NASA Goddard Space Flight Center",
            "source_filename": "land_shallow_topo_2048.jpg",
            "sha256": "63ea96a7b0891db76a0bf6dc507216b9796c2a67ef683d70f65c14d339e416b8",
            "cache_ttl_seconds": null,
            "poll_interval_seconds": null,
            "provider_issue_interval_seconds": null,
            "live_fetch": false,
            "evidence": "THIRD_PARTY_DATA.md:7-15"
          }
        ],
        "renderer_status": {
          "openscenegraph": {
            "status": "operational-v1.1",
            "evidence": "adapters/openscenegraph/adapter.json",
            "implementation_location": "HP OpenSpace 3D agent/viewer"
          },
          "vulkanscenegraph": {
            "status": "future migration slot; unimplemented",
            "evidence": "adapters/vulkanscenegraph/README.md"
          }
        },
        "evidence_cautions": [
          "README names OpenTrack/OpenBus as operational authorities, while BUILTIN_SOURCES marks the OpenTrack adapter as disabled adapter-slot.",
          "tests/fixtures/agent-base/openspace_agent.py is a test fixture, not the shipped live CelesTrak renderer implementation."
        ],
        "evidence": [
          "lib/open-space/core-v0.2.js:101-260",
          "THIRD_PARTY_DATA.md",
          "README.md:84",
          "migration/export-renderer-from-hp.sh",
          "docs/SECURITY.md"
        ]
      }
    }
  }
}