ok top-level preset merging + execution is sorta figured out now I think, https://git.pixie.town/f0x/skulk/src/branch/main/lib/presets/skulk/client.js is what a preset with (nested) config validation looks like (still a bit messy, might provide some kind of wrapper function to create them?)
time to mess with file streams, woo