Metadata driven UI
Motivation | Choropleth | Barchart | Table | Implementation overview | Filters | Plot Settings Control | Settings | Effects | stateFilterId vs filterId | Typescript definition and derived frontend store | Selections state | Data state | Endpoints | Front end implementation | Overview | Data fetching | Metadata fetching | On mount | On plot control/filter update | Adding new plot | Where do I write custom logic?