Creating Plot Twists
    Preparing search index...

    Type Alias Note

    Note: ThreadCommon & {
        author: Actor;
        key: string | null;
        thread: Thread;
        content: string | null;
        actions: Action[] | null;
        reNote: { id: Uuid } | null;
        accessContacts: ActorId[] | null;
        mentions: ActorId[];
    }

    Represents a note within a thread.

    Notes contain the detailed content (note text, actions) associated with a thread. They are always ordered by creation time within their parent thread.

    Type Declaration

    • author: Actor

      The author of this note

    • key: string | null

      Globally unique, stable identifier for the note within its thread. Can be used to upsert without knowing the id.

      Use one of these patterns:

      • Hardcoded semantic keys for fixed note types: "description", "cancellation"
      • External service IDs for dynamic collections: comment:${immutableId}

      Examples:

      • "description" (for a Jira issue's description note)
      • "comment:12345" (for a specific comment by ID)
      • "gmail:msg:18d4e5f2a3b1c9d7" (for a Gmail message within a thread)

      Ensure IDs are immutable - avoid human-readable slugs or titles.

    • thread: Thread

      The parent thread this note belongs to

    • content: string | null

      Primary content for the note (markdown)

    • actions: Action[] | null

      Array of interactive actions attached to the note

    • reNote: { id: Uuid } | null

      The note this is a reply to, or null if not a reply

    • accessContacts: ActorId[] | null

      Contacts who can see this note, or null if the note inherits thread visibility. When set (even to []), the note is private to the listed contacts plus the creator.

    • mentions: ActorId[]

      Priority twist IDs (twists/connectors) mentioned for dispatch routing. Does not include user contacts.