Add support for requesting FCCS, FBFM13, and FBFM40's current-year LFPS release through the version field, with a region-coverage check before the grid is created.
Tasks
fbfm13/schema.py and fccs/schema.py: widen the version enum to include lfps_available (currently built from available only), matching the pattern already used for FBFM40's version enum.
fbfm13/router.py and fccs/router.py: call validate_lfps_coverage when the requested version is LFPS-only, placed the same way fbfm40/router.py already does it for seasonal requests.
fbfm40/schema.py: relax check_version_matches_season so an lfps_available version is legal with no season too (currently only accepted alongside a season).
fbfm40/router.py: widen the existing coverage-check gate to also fire for an lfps_available version with no season.
examples.py for all three products: add an OpenAPI example for the new current-year request.
- Tests: extend each product's
test_schema.py/test_router.py to cover the wider version enum and the coverage-check gating, following the patterns from the FBFM40 seasonal work.
Add support for requesting FCCS, FBFM13, and FBFM40's current-year LFPS release through the version field, with a region-coverage check before the grid is created.
Tasks
fbfm13/schema.pyandfccs/schema.py: widen the version enum to includelfps_available(currently built fromavailableonly), matching the pattern already used for FBFM40's version enum.fbfm13/router.pyandfccs/router.py: callvalidate_lfps_coveragewhen the requested version is LFPS-only, placed the same wayfbfm40/router.pyalready does it for seasonal requests.fbfm40/schema.py: relaxcheck_version_matches_seasonso anlfps_availableversion is legal with noseasontoo (currently only accepted alongside aseason).fbfm40/router.py: widen the existing coverage-check gate to also fire for anlfps_availableversion with no season.examples.pyfor all three products: add an OpenAPI example for the new current-year request.test_schema.py/test_router.pyto cover the wider version enum and the coverage-check gating, following the patterns from the FBFM40 seasonal work.