This makes the config type more convenient to work with: it was previously carrying a serde_json::Value to force the contained types to be opaque, which doesn't make a lot of sense for an external interface.