[#10] Filter by multiple columns when clicking on region

Given that we have the following data:

country,state,city,population
USA,New York,New York City,8336697
USA,New York,New York,19651127
USA,USA,USA,317600000

I want to build a navigatable map of the USA that, when clicking on New York
City, I would be redirected to a dashboard with the data filtered to it. But I
don't want only the city. I would also like to compare it to the state at
large, and the country.

First of all, we need a way to define the hierarchy between the geographical
regions (country, state, and city in this example). We do so simply by
repeating them in each row.

With that solved, now we need a way to plot all the data in a single chart. At
first, we thought of letting the user pick which columns she wants to filter
(for example, country, state, and city), and when clicking on a city we would
get its columns and add the relative filters. In that case, we would end up
with country:USA|state:New York|city:New York City.

Unfortunately, that won't work because our filters are all AND. There's only
one row that's country == "USA" AND state == "New York" AND city == "New York
City", and that's the row we clicked in the first place. The only way to set OR
clauses would be to have them all use the same column name. That's why we ended
up setting everything for everyone. For example, the country USA's row would
define state as USA and city as USA.

Then, when setting up the filters, we get the state and country from the city
clicked on, but use a single column name: city.

There's one caveat to this: there can't be a city with the same name as the
state (or country). If there is, you need to disambiguate them by adding (city)
or something. For example, New York and New York City.
[#10] Make the filter fields configurable by the user

Each field means that, when clicking on a region in the map, we'll get that
region's fields, as defined in the filter fields, and set up the filter with
the resourceKeyField.

For example, if you're plotting cities in the map (it's your resourceKeyField),
and set the filter fields to be country, state, and city, and click on New York
City, we would set the filters to be:

* city = USA
* city = New York
* city = New York City
[#10] Add the resourceKeyField as a filterField by default