TODO:
Integrate base url propagation.
Integrate PackXZExtract to calculate hashes of jar.pack.xz files.
OR ammend the distribution spec to accept different hash algos (requires helioslauncher update).
Repo structure classes should be responsible for pulling versioned files.
Ex. /forge/1.14/ -> get the latest file (or only allow one file).
The resolver then gets that file to work with in order to resolve the forge
module, pull its libs, and attach them as submodules.
Model files will likely be externalized to its own 'spec' project
when the rest of the project is rewritten in typescript. That module
will likely contain processing utilities.