code: public static List<VectorTile.Tile.Feature> toFeatures(Collection<Geometry> flatGeoms,
                                                             MvtLayerProps layerProps,
                                                             IUserDataConverter userDataConverter) {
  
          // Guard: empty geometry
          if(flatGeoms.isEmpty()) {
              return Collections.emptyList();
          }
  
          final List<VectorTile.Tile.Feature> features = new ArrayList<>();
          final Vec2d cursor = new Vec2d();
  
          VectorTile.Tile.Feature nextFeature;
  
          for(Geometry nextGeom : flatGeoms) {
              cursor.set(0d, 0d);
              nextFeature = toFeature(nextGeom, cursor, layerProps, userDataConverter);
              if(nextFeature != null) {
                  features.add(nextFeature);
              }
          }
  
          return features;
      }
docs: <p>Convert a flat list of JTS {@link Geometry} to a list of vector tile features.
  The Geometry should be in MVT coordinates.</p>
  
  <p>Each geometry will have its own ID.</p>
  
  @param flatGeoms flat list of JTS geometry to convert
  @param layerProps layer properties for tagging features
  @param userDataConverter convert {@link Geometry#userData} to MVT feature tags
  @see #flatFeatureList(Geometry)
  @see #createTileGeom(Geometry, Envelope, GeometryFactory, MvtLayerParams, IGeometryFilter)