Architecture thoughts
I like the idea a lot, to have source and export/generated files connected in a machine-readable way. The rest of it though... to me, looks a lot like (re)inventing a whole CI system from scratch. Meaning.. this has already be solved numerous times, and it is a HUGE task, and needs a lot of man-months from very skilled and knowledgeable (in the domain) people to get right (most do not get it right, even though they have these resources even). So my suggestion would be, to let this spec only worry about how to connect source and generated files, and leave everything else aside. Also how the files are grouped into assemblies for example, I would not include. For one, assembly is a name that is quite specific to mechanical hardware, and is not used in textiles, chemistry, and even seldomly used in electronics-only projects, yet, these all have source files and generated files. Also, this grouping info is already present in other parts of the project, for example the CAD file, so this would mean, manually duplicating that info, which is unnecessary and error-prone (especially when changes occur later). Files that connect source and export can be much simpler, and can either be written by hand or by the same (CI-)script that performs the generation, each time the files are generated. Such an approach is much simpler, much easier to get right, much more likely to be adopted more widely, gives a lot more freedom/flexibility to users of it, does not require them to duplicate data, learn a new CI system or convert their already existing CI scripts to this system.