Currently, we record Parser::VERSION in CacheTime (the baseclass of ParserOutput), and compare it against Parser::VERSION again after loading from cache. We discard cache ventries with a mismatching parser version.
The idea behind this was to allow us to see the effect of changes to the parser immediately, ignoring stale entries in ParserCache. In practice, a cold ParserCache will immediately overload the application servers. For this reason, we have not bumped Parser::VERSION in a decade, even when substantial changes where made to the output.
For this reason, we should just drop the check. And we can probably just delete Parser::VERSION altogether.
The should be minimal; the only complication is that the check in CacheTime should be dropped at least one deployment cycle before removing the field or the constant. That way, we avoid trouble in case we have to roll back to code that performs the check on data written by code that didn't record the version.