flood DataCanvas spillover, date/mode guards, and cell-rendering fixes
openmeteo_get_flood gains canvas spillover for wide reanalysis pulls and guards its mutually-exclusive forecast/reanalysis modes; dataframe_query and formatUnits now render output at parity with structuredContent.
Added:
- openmeteo_get_flood DataCanvas spillover — a wide GloFAS reanalysis pull (~15.5k daily records) stages to DuckDB instead of returning inline. Optional canvas_id input; record_count/truncated/canvas_id/table_name output, all additive. Query via openmeteo_dataframe_query. (#19)
Fixed:
- openmeteo_get_flood rejects a one-sided start_date/end_date (date_range_incomplete) and forecast_days combined with a date range (forecast_days_conflict) before the API call, each with a targeted recovery. (#25)
- openmeteo_dataframe_query serializes struct and list cells as JSON and escapes pipes, so content[] matches structuredContent.rows. (#20)
- formatUnits keeps the time entry in content[], matching structuredContent.*_units. (#24)
176 tests pass; bun run devcheck clean.