default Struct flatMap(UnaryOperator<Struct> mapper) {
    var list = asList().stream()
      .flatMap(item -> mapper.apply(item).asList().stream())
      .map(Struct::of)
      .toList();
    var raw = list.stream().map(Struct::rawValue).toList();
    return list.isEmpty() ? NULL : new ListStruct(list, raw);
  }
Returns a new list where each element of this list has been expanded to the list of elements returned by
{@code mapper}.
<p>
Individual items are treated as a list containing just that item.
planetiler-core/src/main/java/com/onthegomap/planetiler/reader/Struct.java