public Planetiler addShapefileSource(String name, Path defaultPath, String defaultUrl) {
    return addShapefileSource(null, name, defaultPath, defaultUrl);
  }
Adds a new ESRI shapefile source that will be processed with a projection inferred from the shapefile 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 shapefile} file, set {@code name_path=newpath.shp.zip} in the arguments and
to override the download URL set {@code name_url=http://url/of/shapefile.zip}.

@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. Can be a
                   {@code .shp} file with other shapefile components in the same directory, or a {@code .zip} file
                   containing the shapefile components.
@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 ShapefileReader
@see Downloader
planetiler-core/src/main/java/com/onthegomap/planetiler/Planetiler.java