docs: @Override
    public Geometry deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) {
      String geometryType;
      // Find the actual class name from the type property in the JSON.
      if (json.isJsonObject()) {
        geometryType = json.getAsJsonObject().get("type").getAsString();
      } else {
        geometryType = json.getAsJsonArray().get(0).getAsJsonObject().get("type").getAsString();
      }
  
      try {
        // Use the current context to deserialize it
        Type classType = Class.forName("com.mapbox.geojson." + geometryType);
        return context.deserialize(json, classType);
      } catch (ClassNotFoundException classNotFoundException) {
        // Unknown geometry
        throw new JsonParseException(classNotFoundException);
      }
    }