What happens if the preferred timestamp has no value won't that break ingestion?  Reaching back in the memory banks I seem to recall talking about a progression for assigning the record timestamp.  I think it was something like, use the preferred timestamp if it existed otherwise user the driver timestamp because we are guaranteed that it will exists.  I don't know if that statement is still true since adding dataset agents, but it still seems we need some sort of progression to ensure each granule has a timestamp.