AlmondTill/G3N API

NewNoteInput

input type

Append-input for addNote.

Fields

FieldTypeRequiredNotes
targetConstructIdID ID!yesThe annotated construct (ANY same-tenant type — existence + same-rootId gate; a cross-tenant/missing target refuses NOT_FOUND).
targetTypeString String!yesThe target's declared construct type (the ruling — constructs key by (type,id), so the existence read NEEDS the type and PROVES the declaration; a mismatch refuses NOT_FOUND opaquely; the TaskConstructRef law).
bodyString String!yesThe note body (1..4096).
parentNoteIdIDnoNo further notes.
titleStringnoThe optional lead line (1..120).
kindStringnoThe kind ∈ {comment, question, action} — unnamed stamps 'comment' (the Task-priority idiom; server-validated).
linksNoteLinkInput [NoteLinkInput!]noOutbound links (≤8 — the scheme fence).
attachmentIdsID [ID!]noThe caller's own PRIOR upload-mints to bind (≤8, distinct; each un-bound + on the SAME target — the attachment-first flow).
refsTaskConstructRefInput [TaskConstructRefInput!]noThe construct refs (≤8, distinct by (type,id); in-tenant + non-doomed at write — the TaskConstructRef law).
mentionsNoteMentionInput [NoteMentionInput!]noThe mentions (≤8, distinct by target; userId ⊕ teamId each — the sendMessage recipient gates verbatim [a USER in-tenant + non-doomed, suspended still receives; a TEAM must be ACTIVE with the CALLER a member]; each lands ONE inbox message in the birth txn).
labelIdsID [ID!]noThe labels (≤8, distinct — ACTIVE TaskLabels; the ONE shared vocabulary).

Used by