Should we just rename get*DatasetType() to get*DatasetConfig() and return configuration objects from those (and let sub-classes override those)?
I think this is a bit closer to what we want. I'm a bit worried it may be confusing to use a Config class as the return element type of these methods, despite the fact that they're likely to have all of the attributes we need*.*
Should we invent a new class for "DatasetType as used by a PipelineTask" that could be returned instead? Those could have a DatasetType instance, and a way to construct from *DatasetConfig (taking over the logic in PipelineTask.makeDatasetType), and a scalar attribute, and whatever else we need them to have in the future. We could start with a simple namedtuple for now.