dataset vintage validation, upstream error handling, text-cell values
- census_list_datasets and every query tool now validate the vintage year against one table before any request goes out; pep/charv advertises 2023 only, acs/acs5 and acs/acs5/profile extend back to 2009, acs/acs1 and acs/acs1/profile to 2005 (#28)
- a rejected upstream request surfaces the Census API's one-line rejection message instead of an HTML error page, on every fetch call site (#28)
- census_query_data and census_compare_geographies distinguish a text cell (GEO_ID, pep/charv UNIVERSE, ACS median-year-built columns) from a suppressed or empty one via a new optional value field (#29)
- minor: guarded suppression-code lookup, empty-cell handling fix