Installation & caching
jpx installs every resolved target once and reuses it across runs. Each target lives under:
~/.jenesis/jpx/<name>@<version>/
The folder holds the closure's jars in one flat directory beside a jpx.properties descriptor that records
the module path, the class path, the entry point, and a deterministic SHA-256 digest over all the jars -
the same digest --hash checks against.
This is also what makes an unpinned target fast: the most recently installed version is preferred over a fresh resolution, so only the first run pays for a download - see Choosing a target.
An incomplete install never launches
The descriptor is written last, on purpose: a download that crashes mid-way leaves no descriptor, so jpx
recognizes the install as incomplete and redoes it rather than launching a half-populated folder. Two
processes installing the same target coordinate through a file lock, so concurrent jpx invocations do
not collide.