Currently we check-and-set ParserOutput::getCacheTime(), ::getCacheRevisionId(), ::getTimestamp() and ::getRenderId() in multiple places.
These should be moved earlier in the parse pipeline (in particular pulled into ContentRenderer) and instead turned into deprecation warnings (and later thrown exceptions) asserting that the properties have already been set.