I cannot check all zips you distribute. If you clone (or download) your repo, you'll have the correct file structure.
On a side note this situation is NOT an isolated instance of troubles caused by compatibility check doing things that seems outside of its scope. The folder name, or the file structure shouldn't be taken into account for compatibility check. The mod.json should contain the only data used to determine compatibility, any other additional rule is likely just going to create pain for modders.
You need to import the functions you are using something like
import { addAnimals, addBerries, addBluffs, addDecoration, addForests, addHills, addLayeredPatches,
addMetal, addStone, addStragglerTrees, createBluffsPassages, markPlayerAvoidanceArea } from
"maps/random/rmgen2/gaia.js";
Armor penetration created a bunch of balance issues in AoE2. Armor shouldn't ever be ignored, but we do need to correct the damage reduction formula to not give so much reduction at lower levels.