{
  "products": [
    {
      "slug": "onecall",
      "title": "One Call weather data",
      "status": "active",
      "fulfillment": "proxied",
      "pricing": {
        "unit": "call",
        "credits_per_unit": 1,
        "note": "1 credit per call — $0.001 at the published anchor. The quoted price is the charged price."
      },
      "licence": {
        "id": "ODbL-1.0",
        "provider": "OpenWeather",
        "attribution_required": true,
        "attribution_text": "Weather data provided by OpenWeather"
      },
      "credit_account": {
        "$comment": "The credit account this product gives every customer — the billing sitting, 2026-09-08. Credits spendable on THIS product and nothing else; the day's amount replaces whatever is left at midnight UTC rather than adding to it, so nothing carries over and nothing accumulates. The engine's Ledger reads this block in-process, exactly as it reads pricing.credits_per_unit, and spends these credits before the account's shared balance. Since 2026-09-23 One Call is one product, so these credits pay for every One Call API, 3.0's and 4.0's alike. A record that carries no credit_account block gives no free credits at all, and needs no field and no zero. This is NOT the retired `trial` field: that name stays retired and the gates that refuse it by name are untouched (the keys sitting, 2026-08-29, superseded here for this product only).",
        "mechanic": "daily_replace",
        "credits": 1000,
        "period": "day"
      },
      "sub_spec": "https://forum.bot/specs/onecall.v0.json"
    }
  ]
}
