Rework the way programs are added to the image
Each bundle of programs should be defined using the NixOS module system:
cri.programs = {
c = [ pkgs.gcc /* ...*/ ];
java = [ pkgs.java /* ... */ ];
};
and can then be used by each image by doing:
environment.systemPackages = attrValues {
inherit (config.cri.programs)
c
java
;
};