One thing I really like about CWL is the ability to load CWL files into a CommandLineTool or Workflow object after generating the classes using `schema-salad-tool --codegen=python CommonWorkflowLanguage.yml > cwl_classes.py`. Is there a schema file that describes CWL inputs/job files similar to CommonWorkflowLanguage.yml? I have been working with these files as dicts, but would be super nice to be able to load them straight into a class object.
To expand a bit on what Michael said, the "inputs" and "outputs" section of every tool or workflow is a schema for the input object, so (although I have not tried it) it probably is not much more complicated than dumping the inputs section and using the code generator on it.