I'd like to add some precisions to this. (@vladislavbelov might correct me)
Vulkan shaders (Also called spir-v shaders) are artifacts produced by compiling the GLSL code (text files) into SPIR-V files (binary files). They only should get rebuilt if new shaders are added or old are modified. That compilation process takes one hour on a fast machine, and about 5 on the CI. The produced output also differs depending on the version of GLSLC (This caused a few disagreements). There is no incremental build.
So you might wonder if we're doing something stupid when compiling them. And actually it's the converse. We're optimizing the number of files we have to generate using these files: https://releases.wildfiregames.com/spir-v/
You see, unlike GLSL which support conditional macro execution using #if and the like, spirv does not and you have to compile every single permutation of those macros. (and there are a lot) Those json files only list the ones that are actually used in order to prevent generating too much useless code. Bruteforcing the generation would add a couple gigabytes of shaders.
When Vulkan was first added the generation script and the relevant rule files were not present anywhere and so we couldn't automate the process. That's one of the things that caused a delay because I didn't want to go the easy route and just dump the spir-v mod as is in the release bundles.
In the future we probably should rebuild the shaders only if something in binaries/data/mods/**/shaders changed, or if the rules file changed (could store a hash of the file or something)
That's still a significant size. The mod itself has the advantage of being compressed