TConfig currently can be anything. But the underlying serialization mechanism, ejson, isn't going to handle everything that's possible. It really ought be constrained to at least what ejson supports to make minimally clear what you can/can't put in a TConfig.
Or, given that TConfig at least initially corresponds to whatever config options the user selects, tho, perhaps it ought be more narrowly { [id: string]: InputValue | undefined }.