PresentationLifecycleOutput
One finished-session popup occurrence with lifecycle timestamps, outcomes, and the frozen render payload. Does not expose sourceHorizonSnapshot. Disputed rows may carry nullable student free text on dispute.submittedText.
- acknowledgedType: string | null Format: date-time
At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- actionType: string | null Format: date-time
Received At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- clientType: string | null Format: date-time
Acted At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- clientType: string | null Format: date-time
Displayed At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- displayType: string | null Format: date-time
Received At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- disputeType: object · PresentationDisputeOutcomenullablerequired
Dispute outcome for one presentation occurrence. Carries selected-option identity (id/ordinal/label, matching SelectedDisputeOptionSnapshotV1 and disputeOptions[] on the render payload) plus nullable free-text
submittedTextfromselectedOptionSnapshot.submittedText(Other / allowsText options). Does not read legacy signal-keyedinsights_dispute.reasonrows; those stay inunattributableDisputeCountonly.- consequenceType: string | null Format: date-time
Released At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- disputedType: string Format: date-time
At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- releasedType: boolean
Strike requiredWhether this dispute row released a strike (insights_dispute.strike_released). Distinct from the sibling presentation-level strikeReleased flag, which is driven by a WARNING_RELEASED enforcement event on this presentation.
- selectedType: object | null
Option requiredSnapshot of the option the student chose; null when the dispute has no snapshot.
- submittedType: string | null
Text requiredStudent free text frozen on the dispute as selectedOptionSnapshot.submittedText; null when the chosen option forbids text or none was submitted. Distinct from the deprecated
insights_dispute.reasoncolumn, which is never served here.
- idType: string Format: uuidrequired
- incidentType: string Format: uuid
Id required - incidentType: string | null enum
Resolution Reason requiredvalues- E
V I D E N C E _ E N D E D - S
T U D E N T _ D I S P U T E D - A
S S E S S M E N T _ E N D E D - S
E S S I O N _ E N D E D - T
E R M I N A L _ S U S P E N S I O N
- incidentType: string | null enum
Status requiredvalues- O
P E N - R
E S O L V E D - D
I S P U T E D - C
A N C E L L E D - T
E R M I N A T E D
- insightType: string | null Format: uuid
Id required - occurrenceType: integer
Number requiredInteger numbers.
- offeredType: string Format: date-time
At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- pinnedType: integer | null
Warning Budget requiredInteger numbers.
- policyType: string enum
Mode requiredvalues- N
O T I F Y - E
N F O R C E
- presentationType: string enum
Status requiredvalues- O
F F E R E D - D
I S P L A Y E D - A
C K N O W L E D G E D - D
I S P U T E D - S
U S P E N D E D - S
U S P E N S I O N _ A C K N O W L E D G E D - S
U P E R S E D E D
- presentationType: string enum
Variant requiredvalues- I
N F O - W
A R N I N G - T
E R M I N A L
- render
Payload requiredFully resolved copy for the INSIGHT surface, frozen when the presentation was offered. Clients render these strings verbatim and never author copy.
- acknowledgementType: string
Confirmation Label required - bodyType: string | nullrequired
- bodyType: string | null
Addendum required - canType: boolean
Dispute required - canType: boolean
Submit Feedback required - clientType: string enum
Effect requiredvalues- N
O N E - R
E T U R N _ F U L L _ S C R E E N _ A F T E R _ A C T I O N
- consequenceType: string | null
Text required - contextType: string
Label required - disputeType: string | null
Action Label required - disputeType: string | null
Confirmation Label required - disputeType: integer | null
Max Length requiredInteger numbers.
- disputeType: array object[] · DisputeOption[]
Options requiredOne dispute choice frozen onto the presentation. The client may submit only an id listed here, and only with text the option permits.
- disputeType: string | null
Placeholder required - disputeType: string | null
Required Text required - insightType: string
Coaching required - insightType: string | null
Full Text required - insightType: string
Message required - insightType: string
Name required - insightType: string | null Format: date-time
Timestamp End requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- insightType: string Format: date-time
Timestamp Start requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- messageType: integer
Version requiredInteger numbers.
- numberType: integer | null
Warnings requiredInteger numbers.
- pillType: string
Label required - primaryenum
Action const:ACKNOWLEDGErequiredvalues- A
C K N O W L E D G E
- primaryType: string
Action Label required - remediationType: string enum
Preview requiredvalues- N
O N E - L
I V E _ W E B C A M
- remediationType: string | null
Preview Aria Label required - remediationType: string | null
Preview Unavailable Text required - requestedType: string
Locale required - resolvedType: string
Locale required - ruleType: object · RuleDisclosure
Disclosure requiredCollapsed rule explanation rendered beneath the notification body.
- schemaType: integer
Version requiredInteger numbers.
- surfaceenum
Kind const:INSIGHTrequiredvalues- I
N S I G H T
- thumbsType: string | null
Down Aria Label required - thumbsType: string | null
Up Aria Label required - titleType: stringrequired
- violationType: string | null
Time Label required - warningType: integer | null
Number requiredInteger numbers.
- warningType: array object[] · WarningProgressSegment[]
Progress Segments requiredOne segment of the warning strip. warningBudget is the terminal threshold: the strip carries warningBudget - 1 WARNING entries plus one TERMINAL (a single TERMINAL when the budget allows no nonterminal warning). WARNING ordinals are contiguous 1..n; TERMINAL ordinal is null.
- renderType: integer
Payload Schema Version requiredInteger numbers.
- revisionType: integerrequired
Integer numbers.
- ruleType: string
Slug required - strikeType: boolean
Accrued required - strikeType: string | null Format: date-time
Accrued At requiredInstant of the WARNING_ACCRUED enforcement event. Derived from occurred_at, a UTC-naive timestamp column; production runtimes use TZ=UTC.
- strikeType: boolean
Released requiredWhether a WARNING_RELEASED enforcement event exists for this presentation. Distinct from dispute.releasedStrike, which is the dispute row's own strike_released flag.
- strikeType: string | null Format: date-time
Released At requiredInstant of the WARNING_RELEASED enforcement event. Derived from occurred_at, a UTC-naive timestamp column; production runtimes use TZ=UTC.
- surfaceType: string enum
Kind requiredvalues- I
N S I G H T - T
E S T _ S U S P E N D E D
- terminalType: object · PresentationTerminalOutcomenullablerequired
Lockout and forced-end facts for a TERMINAL presentation occurrence.
- cooldownType: integer | null
Duration Seconds requiredInteger numbers.
- forcedType: string | null Format: date-time
End At requiredInstant of the FORCED_END enforcement event. Derived from occurred_at, a UTC-naive timestamp column; production runtimes use TZ=UTC.
- lockoutType: string Format: date-time
Expires At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- lockoutType: string Format: uuid
Id required - lockoutType: string Format: date-time
Starts At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
