The setting defaults get overloaded on multiple levels.
build.sh needs to use monoidal composition for the command and eval.
Or to do scripting in Python, or Haskell.
The defaults would be made once in default.nix.
And what is on top would not overload defaults, but only provide binding rules for when custom modes are set.