Project a store-resolved doc onto its watch ref's identity, the way the
lake's perspective reads do: the published-form id becomes _id (the form
the session keys its overlay and snapshot by), and a draft/version
representation's stored id rides along as _originalId — session-side
conditions (including the _originalId in path("versions.**") shape) then
read the same projected identity as the engine's perspective-aware hydration.
Strict by construction: only a canonical watch-reference representation is
accepted — an id that merely ends in
the watched id (another doc's dotted id under a version prefix), a release
the perspective doesn't read, or a draft the perspective makes invisible is
a store routing bug, and projecting it would make content the engine's read
can never see impersonate the watched doc silently, so it throws instead.
Project a store-resolved doc onto its watch ref's identity, the way the lake's perspective reads do: the published-form id becomes
_id(the form the session keys its overlay and snapshot by), and a draft/version representation's stored id rides along as_originalId— session-side conditions (including the_originalId in path("versions.**")shape) then read the same projected identity as the engine's perspective-aware hydration. Strict by construction: only a canonical watch-reference representation is accepted — an id that merely ends in the watched id (another doc's dotted id under a version prefix), a release the perspective doesn't read, or a draft the perspective makes invisible is a store routing bug, and projecting it would make content the engine's read can never see impersonate the watched doc silently, so it throws instead.