public Planetiler addGeoPackageSource(String projection, String name, Path defaultPath, String defaultUrl) {

    Path path = getPath(name, "geopackage", defaultPath, defaultUrl);
    boolean keepUnzipped = getKeepUnzipped(name);
    return addStage(name, "Process features in " + path,
      ifSourceUsed(name, () -> {
        List<Path> sourcePaths = List.of(path);
        if (FileUtils.hasExtension(path, "zip")) {
          sourcePaths = FileUtils.walkPathWithPattern(path, "*.gpkg");
        }

        if (sourcePaths.isEmpty()) {
          throw new IllegalArgumentException("No .gpkg files found in " + path);
        }

        GeoPackageReader.process(projection, name, sourcePaths,
          keepUnzipped ? path.resolveSibling(path.getFileName() + "-unzipped") : tmpDir, featureGroup, config, profile,
          stats, keepUnzipped);
      }));
  }
Adds a new OGC GeoPackage source that will be processed when {@link #run()} is called.
<p>
If the file does not exist and {@code download=true} argument is set, then the file will first be downloaded from
{@code defaultUrl}.
<p>
To override the location of the {@code geopackage} file, set {@code name_path=newpath.gpkg} in the arguments and to
override the download URL set {@code name_url=http://url/of/file.gpkg}.
<p>
If given a path to a ZIP file containing one or more GeoPackages, each {@code .gpkg} file within will be extracted
to a temporary directory at runtime.

@param projection  the Coordinate Reference System authority code to use, parsed with
                   {@link org.geotools.referencing.CRS#decode(String)}
@param name        string to use in stats and logs to identify this stage
@param defaultPath path to the input file to use if {@code name_path} key is not set through arguments
@param defaultUrl  remote URL that the file to download if {@code download=true} argument is set and
                   {@code name_url} argument is not set
@return this runner instance for chaining
@see GeoPackageReader
@see Downloader
planetiler-core/src/main/java/com/onthegomap/planetiler/Planetiler.java