_resolveLocationSet(obj) {
    this._validateLocationSet(obj);

    if (this._resolved.has(obj.locationSetID)) return;  // work was done already

    try {
      const result = _loco.resolveLocationSet(obj.locationSet);
      const locationSetID = result.id;
      obj.locationSetID = locationSetID;

      if (!result.feature.geometry.coordinates.length || !result.feature.properties.area) {
        throw new Error(`locationSet ${locationSetID} resolves to an empty feature.`);
      }

      let geojson = JSON.parse(JSON.stringify(result.feature));   // deep clone
      geojson.id = locationSetID;      // Important: always use the locationSet `id` (`+[Q30]`), not the feature `id` (`Q30`)
      geojson.properties.id = locationSetID;
      this._resolved.set(locationSetID, geojson);

    } catch {
      obj.locationSet = { include: ['Q2'] };  // default worldwide
      obj.locationSetID = '+[Q2]';
    }
  }
_resolveLocationSet
Does everything that `_validateLocationSet()` does, but then "resolves" the locationSet into GeoJSON.
This step is a bit more computationally expensive, so really only needed if you intend to render the shape.

Note: You need to call `_rebuildIndex()` after you're all finished validating the locationSets.

@param  `obj`  Object to check, it should have `locationSet` property