So to reply to my own question, after some digging around GitHub and blog posts the more complex use cases seem to prefer having a separate class for for config and using the config methods for get/require on the individual properties, similar to the first option I posted. Might be useful to someone if they search back on this.