UnframedViewNotificationParams
The params of an unframed view notification.
Declares the base members every view notification carries, and stays
open for the event-specific fields add per event type.
The v1 schema model names no method-correlated union (the events element’s params arm is selected by its sibling method), so the
per-event arms cannot be expressed here without one; enumerating them as
an uncorrelated union would additionally exclude turn/unqueued, whose
notification row is another lane’s ratified deferral — a
published schema that rejects a real page element is the exact
defect this PR exists to close. Recorded as a Design delta on.
sourceRange is required here and not optional: view/page serves
durable-sourced events only, and durable-sourced is defined
as carrying a sourceRange — the ephemeral-sourced exemption applies
to item/delta, which view/page never replays.
Fields and variants
Section titled “Fields and variants”sessionIdsourceRangeviewCursor
Source
schema/msp/experimental/msp.schema.json#/types/UnframedViewNotificationParams
{ "description": "The `params` of an unframed view notification.\n\nDeclares the base members every view notification carries, and stays\n**open** for the event-specific fields add per event type.\nThe v1 schema model names no method-correlated union (the `events` element's `params` arm is selected by its sibling `method`), so the\nper-event arms cannot be expressed here without one; enumerating them as\nan uncorrelated union would additionally exclude `turn/unqueued`, whose\nnotification row is another lane's ratified deferral — a\npublished schema that rejects a real page element is the exact\ndefect this PR exists to close. Recorded as a Design delta on.\n\n`sourceRange` is required here and not optional: `view/page` serves\ndurable-sourced events only, and durable-sourced is *defined*\nas carrying a `sourceRange` — the ephemeral-sourced exemption applies\nto `item/delta`, which `view/page` never replays.", "properties": { "sessionId": { "description": "The owning session.", "type": "string" }, "sourceRange": { "$ref": "#/$defs/SourceRange", "description": "The durable records this event folded from." }, "viewCursor": { "description": "The event's opaque, strictly monotonic view cursor. It stays **inside**\n`params`, where every live notification already carries it — nothing is spliced beside `method`.", "type": "string" } }, "required": [ "sessionId", "sourceRange", "viewCursor" ], "type": "object"}