The flat indicator list, optionally filtered by theme / year / search. A blank
theme or search rejects with RegionalatlasValidationError before the
catalogue is fetched.
Run a data query. Maps the level to a typ (before any request), resolves the
indicator against the catalogue allowlist, validates/defaults the year, then
builds the SQL from
ONLY those validated pieces. region and fields are applied client-side and
never enter the request.
query, plus how many rows the data host returned before the region filter
(fetched), so a caller can tell "the host has no rows for this year" from
"no row matched the region", and whether the host cut the rows off at its record
limit (exceededTransferLimit), which query cannot show.
The 21 subject areas (Themenbereiche), each with its indicator count.
The catalogue is fetched once per query/list call and cached for the lifetime of the client instance, so a
query(which needs the catalogue to resolve the indicator) does not double-fetch.