IncidentPresentationOutput
One offer of one incident to the student. Its render payload and source horizon are frozen at offer time, so a later deployment or cursor advance cannot rewrite what the student saw. Actions must name presentationId and revision exactly. insightId and insightTypeSlug are server-authored from the authoritative incident (including TERMINAL / TEST_SUSPENDED, which still have a triggering insight).
- incidentType: stringFormat: uuid
Id required - insightType: stringFormat: uuid
Id requiredAuthoritative derived insight id from the incident. Present for INSIGHT and TEST_SUSPENDED presentations. Never derived from request input or render prose.
- insightType: string
Type Slug requiredAuthoritative catalog slug of the triggering insight, taken from the incident's primaryInsightSlug. Present for INSIGHT and TEST_SUSPENDED presentations.
- lockoutType: string | nullFormat: uuid
Id requiredSet exactly for TERMINAL presentations, which commit a lockout.
- occurrenceType: integer
Number requiredReminder ordinal within the incident, starting at 1.
- offeredType: stringFormat: date-time
At requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- policyType: "NOTIFY" or "ENFORCE"enum
Mode required - presentationType: stringFormat: uuid
Id required - presentationType: stringenum
Status requiredvaluesOFFEREDDISPLAYEDACKNOWLEDGEDDISPUTEDSUSPENDEDSUSPENSION_ACKNOWLEDGEDSUPERSEDED - presentationType: "INFO" or "WARNING" or "TERMINAL"enum
Variant required - 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: "NONE" or "RETURN_FULL_SCREEN_AFTER_ACTION"enum
Effect required - 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.
- Properties: 8disputeType: array of DisputeOption
Options required - 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 | nullFormat: date-time
Timestamp End requiredthe date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z
- insightType: stringFormat: 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: ยACKNOWLEDGErequired - primaryType: string
Action Label required - remediationType: "NONE" or "LIVE_WEBCAM"enum
Preview required - remediationType: string | null
Preview Aria Label required - remediationType: string | null
Preview Unavailable Text required - requestedType: string
Locale required - resolvedType: string
Locale required - ruleType: RuleDisclosure
Disclosure requiredProperties: 8Collapsed rule explanation rendered beneath the notification body.
- schemaType: integer
Version requiredInteger numbers.
- surfaceenum
Kind const: ยINSIGHTrequired - 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.
- Properties: 5warningType: array of WarningProgressSegment
Progress Segments required
- renderType: integer
Payload Schema Version requiredInteger numbers.
- revisionType: integerrequired
Bumped whenever the presentation is re-offered. An action naming an older revision is rejected as STALE_REVISION.
- sourceType: object
Horizon Snapshot requiredProperties: 1The per-source appliedThrough values that authorized this presentation, keyed by source. A later presentation from the same source requires a strictly newer value.
- surfaceType: "INSIGHT" or "TEST_SUSPENDED"enum
Kind required
