Separating retrievedAt from publishedAt is a small schema choice that quietly kills a lot of staleness bugs, so I'm glad you made it explicit. The coalescing point matters more than people think: parallel agents refetching the same doc five times is both a cost and a politeness problem, as that kernel.org core-usage number shows. Do you coalesce on canonical URL or on content hash when one page serves two URLs?