TIL if someone abstracts a computation (function, HTTP request or whatever) with a complex config, one must provide an abstraction layer above (like macros or function) so every client doesn't have to build the config oneself.

I've spent several hours to find the bug in such a config; turns out it had implicit dependencies between fields🤯