I recently made a python library that does this. You build up specs (a json/dict), and at each layer that descends, you add a `spec_chain` entry, and build another spec for the next level. Once the specs are built, you can validate, as well as get config defaults from it.<p><a href="https://pypi.org/project/specker" rel="nofollow noreferrer">https://pypi.org/project/specker</a>