I wonder if the overridable method should be `getUnpackedDirectoryName()` rather than concatenating the `getShortName()` and version. Feels brittle where one could override the short name not realising the consequences. Or could have an unpacked dir name that doesn't fit this pattern.

No particularly strong feelings though.