Skip to content
Developer Preview

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.

  • sessionId
  • sourceRange
  • viewCursor
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"
}