v0.5.0
Add WeatherProvider._get_json() — checks HTTP status, validates JSON, and surfaces API-level error payloads (OWM cod!=200, Open-Meteo error:true) as RuntimeError with a clear message instead of KeyError/JSONDecodeError. Replace all bare .session.get(url).json() calls with _get_json() across every provider. The OWM One Call minutely path retains its own try/except since silent fallback on 401 is intentional for that optional endpoint. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>