Please indulge me one last time. (I really disagree with having 2 separate hierarchies where the modder has to look for overrides and original data in different places).
It is much more intuitive for people to have all the contents in one folder structure and not to care what are replacements and what not.
So you look at all mods with all files and all replacements and create a virtual (or not) filestructure starting from VCMI/Mods/. All files appear only once and (the overwriting order as to be specified in mod config EG: Load HotA after SoD).
Below is how you would replace original pikeman.json from within HotA. You just put the right file in the correct place in the hierarchy. The engine will not really know about SoD and HotA it will just load all the factions there are, in the specified order.
..... SoD artifacts
..... HotA artifacts