code: private List<TimeZoneInfo> parseTimeZoneInfo(JsonObject root, List<String> prefix) {
      List<TimeZoneInfo> zones = new ArrayList<>();
      for (String label : objectKeys(root)) {
        JsonObject value = resolve(root, label);
        List<String> zone = new ArrayList<>(prefix);
        zone.add(label);
        if (isTimeZone(value)) {
          TimeZoneInfo info = parseTimeZoneObject(value, zone);
          zones.add(info);
        } else {
          zones.addAll(parseTimeZoneInfo(value, zone));
        }
      }
      return zones;
    }
docs: Recursively parse the zone labels until we get to a zone info object.