Currently, various assertions and validations occur in validate_args() in arguments.py immediately after args are parsed. These should be migrated to the dataclasses' post-init/finalize functions. Assertions that cut across multiple configs should live in ConfigContainer post-init/finalize.