MemoryEvalConfig and EmailConfig, with their two constants and their normalise
arms. Neither loop can speak, which is why they read together.
The shared defaults const block now holds only the core daemon's own; every
other block keeps its defaults beside its struct.