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).

  • incidentId
    Type: string Format: uuid
    required
  • insightId
    Type: string Format: uuid
    required

    Authoritative derived insight id from the incident. Present for INSIGHT and TEST_SUSPENDED presentations. Never derived from request input or render prose.

  • insightTypeSlug
    Type: string
    required

    Authoritative catalog slug of the triggering insight, taken from the incident's primaryInsightSlug. Present for INSIGHT and TEST_SUSPENDED presentations.

  • lockoutId
    Type: string | null Format: uuid
    required

    Set exactly for TERMINAL presentations, which commit a lockout.

  • occurrenceNumber
    Type: integer
    required

    Reminder ordinal within the incident, starting at 1.

  • offeredAt
    Type: string Format: date-time
    required

    the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z

  • policyMode
    Type: string enum
    required
    values
    • NOTIFY
    • ENFORCE
  • presentationId
    Type: string Format: uuid
    required
  • presentationStatus
    Type: string enum
    required
    values
    • OFFERED
    • DISPLAYED
    • ACKNOWLEDGED
    • DISPUTED
    • SUSPENDED
    • SUSPENSION_ACKNOWLEDGED
    • SUPERSEDED
  • presentationVariant
    Type: string enum
    required
    values
    • INFO
    • WARNING
    • TERMINAL
  • renderPayload
    required

    Fully resolved copy for the INSIGHT surface, frozen when the presentation was offered. Clients render these strings verbatim and never author copy.

    • acknowledgementConfirmationLabel
      Type: string
      required
    • body
      Type: string | null
      required
    • bodyAddendum
      Type: string | null
      required
    • canDispute
      Type: boolean
      required
    • canSubmitFeedback
      Type: boolean
      required
    • clientEffect
      Type: string enum
      required
      values
      • NONE
      • RETURN_FULL_SCREEN_AFTER_ACTION
    • consequenceText
      Type: string | null
      required
    • contextLabel
      Type: string
      required
    • disputeActionLabel
      Type: string | null
      required
    • disputeConfirmationLabel
      Type: string | null
      required
    • disputeMaxLength
      Type: integer | null
      required

      Integer numbers.

    • disputeOptions
      Type: array object[] · DisputeOption[]
      required

      One dispute choice frozen onto the presentation. The client may submit only an id listed here, and only with text the option permits.

    • disputePlaceholder
      Type: string | null
      required
    • disputeRequiredText
      Type: string | null
      required
    • insightCoaching
      Type: string
      required
    • insightFullText
      Type: string | null
      required
    • insightMessage
      Type: string
      required
    • insightName
      Type: string
      required
    • insightTimestampEnd
      Type: string | null Format: date-time
      required

      the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z

    • insightTimestampStart
      Type: string Format: date-time
      required

      the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z

    • messageVersion
      Type: integer
      required

      Integer numbers.

    • numberWarnings
      Type: integer | null
      required

      Integer numbers.

    • pillLabel
      Type: string
      required
    • primaryAction
      enum
      const:  
      ACKNOWLEDGE
      required
      values
      • ACKNOWLEDGE
    • primaryActionLabel
      Type: string
      required
    • remediationPreview
      Type: string enum
      required
      values
      • NONE
      • LIVE_WEBCAM
    • remediationPreviewAriaLabel
      Type: string | null
      required
    • remediationPreviewUnavailableText
      Type: string | null
      required
    • requestedLocale
      Type: string
      required
    • resolvedLocale
      Type: string
      required
    • ruleDisclosure
      Type: object · RuleDisclosure
      required

      Collapsed rule explanation rendered beneath the notification body.

    • schemaVersion
      Type: integer
      required

      Integer numbers.

    • surfaceKind
      enum
      const:  
      INSIGHT
      required
      values
      • INSIGHT
    • thumbsDownAriaLabel
      Type: string | null
      required
    • thumbsUpAriaLabel
      Type: string | null
      required
    • title
      Type: string
      required
    • violationTimeLabel
      Type: string | null
      required
    • warningNumber
      Type: integer | null
      required

      Integer numbers.

    • warningProgressSegments
      Type: array object[] · WarningProgressSegment[]
      required

      One 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.

  • renderPayloadSchemaVersion
    Type: integer
    required

    Integer numbers.

  • revision
    Type: integer
    required

    Bumped whenever the presentation is re-offered. An action naming an older revision is rejected as STALE_REVISION.

  • sourceHorizonSnapshot
    Type: object
    required

    The per-source appliedThrough values that authorized this presentation, keyed by source. A later presentation from the same source requires a strictly newer value.

    • propertyName
      Type: string Format: date-time

      the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z

  • surfaceKind
    Type: string enum
    required
    values
    • INSIGHT
    • TEST_SUSPENDED