The use case for creating calibration products requires making creation of the Dataset distinct from (and prior to) the identification of its validity range. That suggests we should replace the ExposureRange DataUnit with something like a "CalibIdentifier" (currently imagines as a string provided explicitly when running calib-creation PipelineTasks). CalibIdentifier would also serve as the primary key of a new table with validity range fields, which would be used to define a view for a traditional DataUnitJoin between CalibIdentifier and Exposure. That should remove the need for some special-casing of ExposureRange in preflight added on
DM-16482, and make it easier to refactor DataUnit code later.