{"schemaVersion":1,"catalogId":"oie","title":"Oiê","branding":{"displayName":"Oiê","logoSrc":"/brand-assets/oie-1ae89576691c.svg","logoAlt":"Oiê","logoHomeHref":"","faviconHref":"/brand-assets/oie-1ae89576691c.svg"},"defaultDocumentKey":"engine-next","profileId":"strict-v1","searchChild":"search/directory.json","documents":[{"publication":{"api":"engine","audience":"local","channel":"branch","repositoryURL":"https://github.com/araihu/oie","ref":"refs/heads/main","commit":"4280f507ae0f73ebdd5520dac637817a9c5b931e","sourcePath":"api/openapi.yaml"},"key":"engine-next","sourcePath":"engine-next.json","title":"Oie Engine API","apiVersion":"0.30.0","branding":{"displayName":"","logoSrc":"","logoAlt":"","logoHomeHref":"","faviconHref":""},"overview":{"anchor":"overview","href":"?selected=overview#overview","headingId":"overview-heading","heading":"Oie Engine API","headingLevel":2,"description":"Native engine API for account metadata, XMPP connections, text conversations, reply composition, explicit room sessions, durable message acceptance, and replayable SSE. Credentials are write-only and stored only by the owning engine. All timestamps are UTC and entity/operation IDs are UUIDv7. HTML belongs to the BFF. Known problem responses link to their catalog entry in the Link header with rel=\"help\". Send Prefer: oie-problem-documentation to include the URL in the Problem Details body.","termsOfService":"","specDownloadFilename":"engine-next.json","contact":{"name":"Arai Hû","url":"https://github.com/araihu/oie","email":""},"license":{"name":"","url":"","identifier":""},"servers":[{"ordinal":0,"id":"server-8fe699e46f6967e71340886f10694b5d6662f3a1fe7da11cf78e5ec79f305db6","url":"http://127.0.0.1:8080","description":"Local development engine","variables":[]}]},"sourceChild":"sources/engine-next.json","schemaNodeShards":[{"path":"schema-nodes/engine-next/fbd4fb03b2f1c9076bd2a9680820f4b54e8ce782327b4149d8439a287a6ade16.json","firstOrdinal":0,"lastOrdinal":455,"records":456,"length":430187,"sha256":"fbd4fb03b2f1c9076bd2a9680820f4b54e8ce782327b4149d8439a287a6ade16"}],"operations":[{"detailId":"detail-sha256-13c6e8ff44419f5b439d157ea956a40454c9dcc4202928753dc32d543da4cbd2","operationId":"listAccounts","method":"GET","path":"/api/v1/accounts","title":"List registered account metadata","description":"Stable UUID-ordered keyset pagination; registration does not establish an XMPP session.","href":"documents/engine-next/?selected=detail-sha256-13c6e8ff44419f5b439d157ea956a40454c9dcc4202928753dc32d543da4cbd2#detail-sha256-13c6e8ff44419f5b439d157ea956a40454c9dcc4202928753dc32d543da4cbd2","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-245c92cb971361b1b7a5e33b812a9aedd8e705f72ccfe243e906b29359ed3b19","operationId":"registerAccount","method":"POST","path":"/api/v1/accounts","title":"Register protocol account metadata","description":"Atomically stores an account, initial immutable revision, operation receipt,\nand account.registered event. Repeating a key with the same normalized input\nreturns the original result. Reusing it with different input conflicts.\nNo credentials are accepted, and no protocol session is opened.\nNew XMPP registrations use the compiled-in adapter to normalize bare JIDs before matching. Existing foundation metadata is retained without rewriting identities.\n","href":"documents/engine-next/?selected=detail-sha256-245c92cb971361b1b7a5e33b812a9aedd8e705f72ccfe243e906b29359ed3b19#detail-sha256-245c92cb971361b1b7a5e33b812a9aedd8e705f72ccfe243e906b29359ed3b19","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-4c202598377913c4f12ab34cf67b69f7f7adf62c01b58a913d5b1289bed93af8","operationId":"getAccount","method":"GET","path":"/api/v1/accounts/{accountId}","title":"Read an account","description":"Returns registered metadata and its initial current revision.","href":"documents/engine-next/?selected=detail-sha256-4c202598377913c4f12ab34cf67b69f7f7adf62c01b58a913d5b1289bed93af8#detail-sha256-4c202598377913c4f12ab34cf67b69f7f7adf62c01b58a913d5b1289bed93af8","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-b49727a5e44bbebe4dc530510cccb20ac31e31f7bf52f5c23ceb2d07d8a9a44b","operationId":"listAccountAvatars","method":"GET","path":"/api/v1/accounts/{accountId}/avatars","title":"Read retained profile image metadata","description":"Account-scoped user and conversation profile images retrieved through the protocol. Initials remain the fallback for absent or inaccessible images. Image bytes live outside SQLite and contain only normalized PNG thumbnails.","href":"documents/engine-next/?selected=detail-sha256-b49727a5e44bbebe4dc530510cccb20ac31e31f7bf52f5c23ceb2d07d8a9a44b#detail-sha256-b49727a5e44bbebe4dc530510cccb20ac31e31f7bf52f5c23ceb2d07d8a9a44b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-c5f6db09ac5e4d1ea2f73b41789d9cb801f70ccad625764ae7a829dc0f49e252","operationId":"getAccountCapabilities","method":"GET","path":"/api/v1/accounts/{accountId}/capabilities","title":"Read account capability evidence","description":"Read application implementation, protocol support and cached server discovery evidence separately. This query never contacts the protocol server. Evidence is scoped, bounded and cleared when a connection ends. An absent advertisement does not prove that a client-level feature is unsupported. Discovery runs once per connection; room evidence is also collected during history recovery.","href":"documents/engine-next/?selected=detail-sha256-c5f6db09ac5e4d1ea2f73b41789d9cb801f70ccad625764ae7a829dc0f49e252#detail-sha256-c5f6db09ac5e4d1ea2f73b41789d9cb801f70ccad625764ae7a829dc0f49e252","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-26c986459aab029a057284161213ee6f3d6c2dc84552ae042bd7ecd76051d32b","operationId":"disconnectAccount","method":"DELETE","path":"/api/v1/accounts/{accountId}/connection","title":"Disconnect and disable automatic connection","description":"Keeps protocol credentials local for a later explicit configuration; does not delete account history or pending sends. Repeating disconnect is safe.","href":"documents/engine-next/?selected=detail-sha256-26c986459aab029a057284161213ee6f3d6c2dc84552ae042bd7ecd76051d32b#detail-sha256-26c986459aab029a057284161213ee6f3d6c2dc84552ae042bd7ecd76051d32b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-1fae6648b7ba9810bfd404d4ff34ad775b555e9e498915c045297534490d2818","operationId":"getAccountConnection","method":"GET","path":"/api/v1/accounts/{accountId}/connection","title":"Read account connection state","description":"State is runtime evidence, distinct from saved account metadata.","href":"documents/engine-next/?selected=detail-sha256-1fae6648b7ba9810bfd404d4ff34ad775b555e9e498915c045297534490d2818#detail-sha256-1fae6648b7ba9810bfd404d4ff34ad775b555e9e498915c045297534490d2818","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-e03043f68ff5e338e3e95fbb3e892b09a49ce4e7b2cea29790f144b468102b80","operationId":"configureAccountConnection","method":"PUT","path":"/api/v1/accounts/{accountId}/connection","title":"Configure and connect an account","description":"Persists write-only credentials before starting an asynchronous TLS/SASL connection. Transient network failures reconnect with bounded backoff; invalid credentials or TLS verification failures require corrected configuration. Ordinary engine restart reloads enabled configurations.","href":"documents/engine-next/?selected=detail-sha256-e03043f68ff5e338e3e95fbb3e892b09a49ce4e7b2cea29790f144b468102b80#detail-sha256-e03043f68ff5e338e3e95fbb3e892b09a49ce4e7b2cea29790f144b468102b80","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-32fee352e52a4d59f14167d14aeeb92d8147810c5583ee58fbc56a9ccd3dd4c7","operationId":"getAccountHistory","method":"GET","path":"/api/v1/accounts/{accountId}/history","title":"Read account history recovery progress","description":"Recovery starts on protocol connection. Saved room entries and authorized text archives are read serially, with persistent checkpoints and deduplication. Historical imports do not create sends or unread counts. Complete means the last authorized text recovery pass finished; it is not a full protocol-feature claim. Saved rooms are read-only in this increment. Provider permission failures remain partial coverage.","href":"documents/engine-next/?selected=detail-sha256-32fee352e52a4d59f14167d14aeeb92d8147810c5583ee58fbc56a9ccd3dd4c7#detail-sha256-32fee352e52a4d59f14167d14aeeb92d8147810c5583ee58fbc56a9ccd3dd4c7","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-3c3b9a3d7397fa801151d1da531ed3cd92792073852d634a9f4480e1d97a0673","operationId":"previewRoom","method":"GET","path":"/api/v1/accounts/{accountId}/room-preview","title":"Read a room preview using the selected account","description":"Reads published room information and an available vCard from the bare room address. Does not save the conversation or enter the room.","href":"documents/engine-next/?selected=detail-sha256-3c3b9a3d7397fa801151d1da531ed3cd92792073852d634a9f4480e1d97a0673#detail-sha256-3c3b9a3d7397fa801151d1da531ed3cd92792073852d634a9f4480e1d97a0673","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-5e4ea537616375d40976f2191032121e894b17a158d525bd81cde46fd340b9a0","operationId":"openRoom","method":"POST","path":"/api/v1/accounts/{accountId}/rooms","title":"Open and request entry to an XMPP room","description":"Atomically saves the room and its entry intent. Creation requires explicit selection and is confirmed separately through the room session. Repeating the same key cannot reactivate a later leave. Creation uses the service defaults with persistence enabled and an optional room name.","href":"documents/engine-next/?selected=detail-sha256-5e4ea537616375d40976f2191032121e894b17a158d525bd81cde46fd340b9a0#detail-sha256-5e4ea537616375d40976f2191032121e894b17a158d525bd81cde46fd340b9a0","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-ccfb8539cc19b56bd849a4dae91cbcfa667392016fa268170f0a93239960c2c1","operationId":"getAvatarImage","method":"GET","path":"/api/v1/avatars/{hash}","title":"Read a cached profile thumbnail","description":"Returns only a locally retained, decoded and normalized image; never redirects to provider URLs. Hash-addressed images can be cached privately and immutably.","href":"documents/engine-next/?selected=detail-sha256-ccfb8539cc19b56bd849a4dae91cbcfa667392016fa268170f0a93239960c2c1#detail-sha256-ccfb8539cc19b56bd849a4dae91cbcfa667392016fa268170f0a93239960c2c1","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-44efa6ee53dfbe649943fa63e7a35e5faffc68827e7842d5209392d0cd7576a7","operationId":"listContacts","method":"GET","path":"/api/v1/contacts","title":"Search saved protocol contacts","description":"Read the retained per-account contact directory without fetching a roster, changing subscriptions, adding contacts or opening conversations. Unknown and unavailable sources are distinct from an observed empty roster. Cached contacts remain searchable while disconnected. Results are ordered by stable contact UUID and filtered before pagination.","href":"documents/engine-next/?selected=detail-sha256-44efa6ee53dfbe649943fa63e7a35e5faffc68827e7842d5209392d0cd7576a7#detail-sha256-44efa6ee53dfbe649943fa63e7a35e5faffc68827e7842d5209392d0cd7576a7","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Accounts"],"facets":[]},{"detailId":"detail-sha256-355906322f65e7b5d2ae2eea2dcac80bd41bfdd26903ec17518f2d3baea2e75e","operationId":"listConversations","method":"GET","path":"/api/v1/conversations","title":"List retained conversations","description":"Keyset pages ordered by descending engine activity. Search matches conversation address/title and latest text preview; this is not full message search.","href":"documents/engine-next/?selected=detail-sha256-355906322f65e7b5d2ae2eea2dcac80bd41bfdd26903ec17518f2d3baea2e75e#detail-sha256-355906322f65e7b5d2ae2eea2dcac80bd41bfdd26903ec17518f2d3baea2e75e","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-266c6c72484a4d34f97326f1b7deea7b3a1e345e1a7be775efd4102014b5f8cf","operationId":"openConversation","method":"POST","path":"/api/v1/conversations","title":"Open a direct conversation","description":"Finds an existing conversation for the canonical account/peer or creates one. Durable operation keys retain original results. Does not add a contact or send presence subscriptions.","href":"documents/engine-next/?selected=detail-sha256-266c6c72484a4d34f97326f1b7deea7b3a1e345e1a7be775efd4102014b5f8cf#detail-sha256-266c6c72484a4d34f97326f1b7deea7b3a1e345e1a7be775efd4102014b5f8cf","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-427f9bb817063b7b9b0b5d1a1fb79852ddbe2de0290d1e12c50f9f00ad714105","operationId":"getConversation","method":"GET","path":"/api/v1/conversations/{conversationId}","title":"Read a conversation","description":"Returns the current conversation projection.","href":"documents/engine-next/?selected=detail-sha256-427f9bb817063b7b9b0b5d1a1fb79852ddbe2de0290d1e12c50f9f00ad714105#detail-sha256-427f9bb817063b7b9b0b5d1a1fb79852ddbe2de0290d1e12c50f9f00ad714105","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-ba38be067c80782ad08f376ff331ab75d8a539d129d936f0dc13a54baad87836","operationId":"updateConversationPreferences","method":"PATCH","path":"/api/v1/conversations/{conversationId}","title":"Change conversation preferences or accept a direct message request","description":"Atomically updates only the supplied app-owned flags, records an immutable conversation revision and operation receipt, and emits conversation.updated only for an actual change. No protocol operation is performed. The owning account must match accountId. expectedRevisionId must match the latest conversation revision, including intervening incoming-message or read updates. A matching Idempotency-Key replays its original accepted snapshot before checking current state. Reusing a key with different fields or preconditions conflicts. Setting an already-current value succeeds without another revision or event. Activity order, message timestamps, unread counts and outbox are unchanged by archive or favorite changes. Accepting a direct message request reveals the conversation and restores it from the archive. Read the conversation after a replay for current state.","href":"documents/engine-next/?selected=detail-sha256-ba38be067c80782ad08f376ff331ab75d8a539d129d936f0dc13a54baad87836#detail-sha256-ba38be067c80782ad08f376ff331ab75d8a539d129d936f0dc13a54baad87836","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-ebb84866fe69fb310e72f7af87f7fa7b636351121494dbdea00dc6815f986d44","operationId":"getRoomArchive","method":"GET","path":"/api/v1/conversations/{conversationId}/archive","title":"Read room archive recovery settings and progress","description":"Reads retained state for the room without sending a protocol request.","href":"documents/engine-next/?selected=detail-sha256-ebb84866fe69fb310e72f7af87f7fa7b636351121494dbdea00dc6815f986d44#detail-sha256-ebb84866fe69fb310e72f7af87f7fa7b636351121494dbdea00dc6815f986d44","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-de0ae4475b94128e932e3c15b73768c6bcc37c285a24bc381a53f5b651118c82","operationId":"setRoomArchiveMode","method":"PUT","path":"/api/v1/conversations/{conversationId}/archive","title":"Set the room archive recovery mode","description":"Replaces the mode idempotently. Existing messages and progress are retained. Gradual mode resumes eligible automatic recovery.","href":"documents/engine-next/?selected=detail-sha256-de0ae4475b94128e932e3c15b73768c6bcc37c285a24bc381a53f5b651118c82#detail-sha256-de0ae4475b94128e932e3c15b73768c6bcc37c285a24bc381a53f5b651118c82","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-94858f15333c8a1e742a30053fd8bcafaf3e1fc678db469070ff532245cc1497","operationId":"requestRoomArchive","method":"POST","path":"/api/v1/conversations/{conversationId}/archive/requests","title":"Request a bounded room archive read","description":"Request the next initial page (focus), an older page (older), context around a retained message (context), or a text search page (search). Search requires a query and accepts an optional cursor from the same room and query. Context requires messageId. Older accepts a retained messageId as a boundary. The owning account and room determine the archive. Successful imports are retained with historical semantics. Search and context do not advance background recovery checkpoints. Results are bounded. A capability failure does not affect local reads.","href":"documents/engine-next/?selected=detail-sha256-94858f15333c8a1e742a30053fd8bcafaf3e1fc678db469070ff532245cc1497#detail-sha256-94858f15333c8a1e742a30053fd8bcafaf3e1fc678db469070ff532245cc1497","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-9bba63b0f2322e705e42f0feede810fd7a212c331e195d0f0414a206e64bdbd6","operationId":"getConversationDetails","method":"GET","path":"/api/v1/conversations/{conversationId}/details","title":"Read scoped conversation details","description":"Read the current account connection and session-local conversation metadata. Returns immediately; a connected adapter may schedule a deduplicated, serialized discovery refresh no more often than once per sixty seconds. This never joins a room, requests a subscription, probes a peer or sends a message. Occupant discovery is a bounded snapshot, never a complete member roster. Missing presence remains unknown. Disconnect clears observations.","href":"documents/engine-next/?selected=detail-sha256-9bba63b0f2322e705e42f0feede810fd7a212c331e195d0f0414a206e64bdbd6#detail-sha256-9bba63b0f2322e705e42f0feede810fd7a212c331e195d0f0414a206e64bdbd6","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-1ab9c782f5fbde5c8215eabe05ad0453d951d9427bb523fd3391c9f97df9e771","operationId":"getConversationEditTarget","method":"GET","path":"/api/v1/conversations/{conversationId}/edit-target","title":"Inspect the latest own retained message for keyboard editing","description":"Uses a durable transmission ordinal for original sends by this engine, independently of device clocks and the visible timeline page. Returns the latest own original transmission candidate even when it is ineligible; never silently skips it to edit an older one. Queued or cancelled originals which never reached dispatch, imported own messages and correction commands do not establish this order. Returns 404 when there is no retained engine transmission. Read-only and does not mark messages read or fetch provider history.","href":"documents/engine-next/?selected=detail-sha256-1ab9c782f5fbde5c8215eabe05ad0453d951d9427bb523fd3391c9f97df9e771#detail-sha256-1ab9c782f5fbde5c8215eabe05ad0453d951d9427bb523fd3391c9f97df9e771","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-3d691d5fadd8f9f964eb268154595e442594e0329eaaae6e748783b428cca84a","operationId":"getMentionCandidates","method":"GET","path":"/api/v1/conversations/{conversationId}/mention-candidates","title":"Read observed room mention candidates","description":"Read a bounded, account-scoped snapshot of visible room occupants. This never joins a room or discovers hidden personal identities. Candidates supply exact readable insertion text. Structured references are available only when the protocol adapter has a valid disclosed target; otherwise sending preserves the same readable text without protocol metadata.","href":"documents/engine-next/?selected=detail-sha256-3d691d5fadd8f9f964eb268154595e442594e0329eaaae6e748783b428cca84a#detail-sha256-3d691d5fadd8f9f964eb268154595e442594e0329eaaae6e748783b428cca84a","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-c2e45a7908400c6117b3918dfa8f560db7305b0c1edbf6d96b9b640fc5b63fcc","operationId":"listConversationMessageStars","method":"GET","path":"/api/v1/conversations/{conversationId}/message-stars","title":"Read star states for displayed messages","description":"Reads up to 100 distinct source message states without creating rows. Every message must belong to the requested conversation; foreign or missing message IDs reject the whole request. Item order is unspecified.","href":"documents/engine-next/?selected=detail-sha256-c2e45a7908400c6117b3918dfa8f560db7305b0c1edbf6d96b9b640fc5b63fcc#detail-sha256-c2e45a7908400c6117b3918dfa8f560db7305b0c1edbf6d96b9b640fc5b63fcc","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-717cc520a167668303d61f5cf12ddd9a52524d13437ef63fa433f128e062b0dd","operationId":"listMessages","method":"GET","path":"/api/v1/conversations/{conversationId}/messages","title":"Read retained messages","description":"Returns a bounded page of retained messages newest-first by timelineAt when present and createdAt otherwise, at UTC millisecond precision with a UUID tie-break. Includes serially recovered archive messages. Pending scheduled messages are omitted until release. The default direction is older; without a cursor it reads the latest page. Newer requires a cursor and reads the nearest messages after that retained conversation-scoped anchor, without skipping to the latest page. Both directions return newest-first. nextCursor continues in the requested direction. Reads never fetch provider history or mark messages as read.","href":"documents/engine-next/?selected=detail-sha256-717cc520a167668303d61f5cf12ddd9a52524d13437ef63fa433f128e062b0dd#detail-sha256-717cc520a167668303d61f5cf12ddd9a52524d13437ef63fa433f128e062b0dd","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-cd680bb893131610d68d962ee6a0c2f566a2a45d41e866c2e9a138884f72ef56","operationId":"sendMessage","method":"POST","path":"/api/v1/conversations/{conversationId}/messages","title":"Accept an immediate or scheduled message","description":"Atomically commits one logical message, operation receipt and outbox intent for the complete composition, including the ordered references to staged attachments. The engine checks the destination, reply, mentions, attachment scope and effective send capabilities before acceptance. Invalid or unavailable attachments reject the whole composition. Attachment bytes are staged locally and any provider upload belongs to dispatch. Room dispatch waits for confirmed membership under an active explicit join intent.\nOmitting scheduledAt makes the intent immediately eligible. A future schedule never blocks another eligible send. A missed schedule dispatches when the owning engine and destination become available again. Optional expectedReplyRevisionId and expectedReplyExcerptSha256 bind a new scheduled reply to the reviewed source and excerpt. A changed source rejects acceptance with state_conflict and replySourceChanged set to true. Idempotency includes the complete composition, normalized instant and any reply preconditions. A matching replay returns the original acceptance snapshot even after the scheduled time passes, attachment availability changes or the source is corrected. Different input with the same key yields idempotency_conflict. Read the message for current state. Ambiguous transmission remains unknown.","href":"documents/engine-next/?selected=detail-sha256-cd680bb893131610d68d962ee6a0c2f566a2a45d41e866c2e9a138884f72ef56#detail-sha256-cd680bb893131610d68d962ee6a0c2f566a2a45d41e866c2e9a138884f72ef56","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-65ddd79b64a917002d0f9dc0ccf871411376a5355cb434fbab3e47a872af83c3","operationId":"getMessageContext","method":"GET","path":"/api/v1/conversations/{conversationId}/messages/{messageId}/context","title":"Read a bounded timeline around a retained message","description":"Reads the target and nearest visible retained neighbors from the same conversation, newest first by timelineAt or createdAt at UTC millisecond precision and UUID tie-break. Includes the target even with limit 1. Only local retained data is read; no provider archive queries or read receipts are triggered. Foreign or unavailable source messages return not_found, including unreleased schedules and scheduled sends cancelled before dispatch. Clients should offer return to latest when hasNewer is true. A retained correction-source alias resolves to the original logical targetId with requestedTargetId identifying the requested alias. All returned items remain scoped to this conversation.","href":"documents/engine-next/?selected=detail-sha256-65ddd79b64a917002d0f9dc0ccf871411376a5355cb434fbab3e47a872af83c3#detail-sha256-65ddd79b64a917002d0f9dc0ccf871411376a5355cb434fbab3e47a872af83c3","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-6ee3a0d5e6023d3a9d0d77d8a44b24a83f137ea037995d69a777f21fda251a6f","operationId":"listConversationPreviews","method":"GET","path":"/api/v1/conversations/{conversationId}/previews","title":"Read cached message link and image previews","description":"Returns at most three URL previews per retained message. Without messageId, uses the latest fifty messages. Cache misses queue bounded background page metadata enrichment. Original images are fetched only by the explicit download operation. Message text and revisions are unchanged.","href":"documents/engine-next/?selected=detail-sha256-6ee3a0d5e6023d3a9d0d77d8a44b24a83f137ea037995d69a777f21fda251a6f#detail-sha256-6ee3a0d5e6023d3a9d0d77d8a44b24a83f137ea037995d69a777f21fda251a6f","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Previews"],"facets":[]},{"detailId":"detail-sha256-2e0edc066d7c65794760f0023175335477cbd34dee7f1e60f854cf49f59be1e3","operationId":"listConversationReactions","method":"GET","path":"/api/v1/conversations/{conversationId}/reactions","title":"Read bounded reactions for the mounted conversation messages","description":"All requested retained messages must belong to this conversation. Canonicalizes aliases and returns each canonical source once. Does not retrieve history or change read state.","href":"documents/engine-next/?selected=detail-sha256-2e0edc066d7c65794760f0023175335477cbd34dee7f1e60f854cf49f59be1e3#detail-sha256-2e0edc066d7c65794760f0023175335477cbd34dee7f1e60f854cf49f59be1e3","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-6dda30e56c9cdb90ea7d3c07ee1aa88ff9067cf8cea051d811c670e6fec8ce1a","operationId":"getConversationReadState","method":"GET","path":"/api/v1/conversations/{conversationId}/read-state","title":"Read retained conversation read state","description":"Reads app-owned read state without changing messages or sending provider receipts.","href":"documents/engine-next/?selected=detail-sha256-6dda30e56c9cdb90ea7d3c07ee1aa88ff9067cf8cea051d811c670e6fec8ce1a#detail-sha256-6dda30e56c9cdb90ea7d3c07ee1aa88ff9067cf8cea051d811c670e6fec8ce1a","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-70dfd65c12c3ea74730f4088ce3292bdaf94dcae8cb3de46815b0d807ef0312e","operationId":"markConversationMessagesRead","method":"POST","path":"/api/v1/conversations/{conversationId}/read-state","title":"Mark specifically observed incoming messages read","description":"Atomically merges the listed retained message identities into app-owned read state. Other messages, including later arrivals, remain unread. Lists are bounded and must belong to this conversation. Own and historical messages are ignored. Repeated batches are safe; retries with the same key return the original committed snapshot. Read revisions and operation receipts are durable. Reading does not bump conversation activity, edit content or send protocol receipts. This alpha operation records local engine read evidence; receipt emission and independent-engine synchronization remain deferred.","href":"documents/engine-next/?selected=detail-sha256-70dfd65c12c3ea74730f4088ce3292bdaf94dcae8cb3de46815b0d807ef0312e#detail-sha256-70dfd65c12c3ea74730f4088ce3292bdaf94dcae8cb3de46815b0d807ef0312e","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-f382b28c1bb3f8c77e6cef3a81a820f180dfccf489cbbf7046ce2544a9e8b5fe","operationId":"getRoomSession","method":"GET","path":"/api/v1/conversations/{conversationId}/room-session","title":"Read this engine's room session and durable join intent","description":"Reads local state without joining. Active denotes a durable intent to rejoin, not observed membership. A joined state requires confirmed self-presence. Missing room intent has no intent identifiers.","href":"documents/engine-next/?selected=detail-sha256-f382b28c1bb3f8c77e6cef3a81a820f180dfccf489cbbf7046ce2544a9e8b5fe#detail-sha256-f382b28c1bb3f8c77e6cef3a81a820f180dfccf489cbbf7046ce2544a9e8b5fe","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-217ef00687f48cb1b3fc7793b7fc98a143569adb94b59c2e57075c776186c0b4","operationId":"joinRoom","method":"POST","path":"/api/v1/conversations/{conversationId}/room-session","title":"Explicitly request entry and reconnect recovery for a saved room","description":"Durably records the owning engine's join intent before protocol work. This increment supports rooms without a join password. Repeated operation keys do not repeat an established command; changed payloads or stale intent revisions conflict. Reads and reply preparation never join. Protocol confirmation is observed through getRoomSession.","href":"documents/engine-next/?selected=detail-sha256-217ef00687f48cb1b3fc7793b7fc98a143569adb94b59c2e57075c776186c0b4#detail-sha256-217ef00687f48cb1b3fc7793b7fc98a143569adb94b59c2e57075c776186c0b4","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-41a5c0f2ffc0eda7584844181bdcc47a8147d9907eb6b3cad7a696215793716d","operationId":"leaveRoom","method":"POST","path":"/api/v1/conversations/{conversationId}/room-session/leave","title":"Leave a room and stop this engine's automatic rejoin","description":"Durably records an explicit leave before sending unavailable presence. Saved history and queued messages are retained. Queued room work cannot dispatch while the intent is inactive. An old operation replay never reactivates a later leave or revoked intent.","href":"documents/engine-next/?selected=detail-sha256-41a5c0f2ffc0eda7584844181bdcc47a8147d9907eb6b3cad7a696215793716d#detail-sha256-41a5c0f2ffc0eda7584844181bdcc47a8147d9907eb6b3cad7a696215793716d","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Conversations"],"facets":[]},{"detailId":"detail-sha256-3444c50af7cbd17175903a7c0ee50d39980180dbdded57c645e2e155d03ab9dc","operationId":"getStagedMessageAttachment","method":"GET","path":"/api/v1/conversations/{conversationId}/staged-attachments/{attachmentId}","title":"Read retained bytes of an outgoing attachment","description":"Reads local bytes in this conversation and account scope, for example when reopening an existing scheduled composition. Returns 404 when bytes are unavailable or the attachment is outside this scope.","href":"documents/engine-next/?selected=detail-sha256-3444c50af7cbd17175903a7c0ee50d39980180dbdded57c645e2e155d03ab9dc#detail-sha256-3444c50af7cbd17175903a7c0ee50d39980180dbdded57c645e2e155d03ab9dc","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-92d956c87f1d5af62aeee4ee4f42804c149a2978c2e39ada11fe236048f5dcad","operationId":"stageMessageAttachment","method":"PUT","path":"/api/v1/conversations/{conversationId}/staged-attachments/{attachmentId}","title":"Stage a file for an outgoing message","description":"Store one complete file durably on the owning engine, scoped to this conversation and its account. The client assigns the ID once. A matching repeat with the same file bytes and filename returns the original receipt. Different input for that ID yields idempotency_conflict. An incomplete request leaves no usable attachment. Confirmed local staging performs no provider upload. Send and pending edit accept only available attachments in the same scope. The engine retains accepted references while their send is unresolved, including through restart, rescheduling and Send now.","href":"documents/engine-next/?selected=detail-sha256-92d956c87f1d5af62aeee4ee4f42804c149a2978c2e39ada11fe236048f5dcad#detail-sha256-92d956c87f1d5af62aeee4ee4f42804c149a2978c2e39ada11fe236048f5dcad","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-8af94a070301fa9589ca7237c58285b0fc9c753e233a4841100dd420d9eb8569","operationId":"getEngine","method":"GET","path":"/api/v1/engine","title":"Read the persistent engine identity","description":"Read eventCursor before fetching snapshots to replay changes during the snapshot.","href":"documents/engine-next/?selected=detail-sha256-8af94a070301fa9589ca7237c58285b0fc9c753e233a4841100dd420d9eb8569#detail-sha256-8af94a070301fa9589ca7237c58285b0fc9c753e233a4841100dd420d9eb8569","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["System"],"facets":[]},{"detailId":"detail-sha256-0b20e81de28d8f41e38e073224664ea15097324184e3479c3cb38e09fbf505f0","operationId":"resetEngineData","method":"POST","path":"/api/v1/engine/reset","title":"Delete all data held by this engine","description":"Permanently deletes accounts, credentials, history and files held by the engine and starts an empty engine with a new identity. Provider copies are outside this operation.","href":"documents/engine-next/?selected=detail-sha256-0b20e81de28d8f41e38e073224664ea15097324184e3479c3cb38e09fbf505f0#detail-sha256-0b20e81de28d8f41e38e073224664ea15097324184e3479c3cb38e09fbf505f0","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["System"],"facets":[]},{"detailId":"detail-sha256-65c0ba3ffe8d5b2b92e77c3cd1a01ffa3f1f03aff75aa7038a421e6bf7ef6127","operationId":"streamEvents","method":"GET","path":"/api/v1/events","title":"Replay durable changes and follow new events","description":"SSE id is engineUUID:sequence; event is the event type; data is Event JSON.\nLast-Event-ID resumes strictly after its sequence. Without a cursor replay\nfrom zero. Cursors from another engine or ahead of current state return 409\nbefore streaming. Heartbeat comments are not durable events.\nThis engine retains the complete change log. Clients deduplicate by event\nID and refresh snapshots if a future retention policy expires a cursor.\n","href":"documents/engine-next/?selected=detail-sha256-65c0ba3ffe8d5b2b92e77c3cd1a01ffa3f1f03aff75aa7038a421e6bf7ef6127#detail-sha256-65c0ba3ffe8d5b2b92e77c3cd1a01ffa3f1f03aff75aa7038a421e6bf7ef6127","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Events"],"facets":[]},{"detailId":"detail-sha256-79598f21834a9ab39310b4276761af775d997c7cfc99dfc9415c8941bc29729c","operationId":"getHealth","method":"GET","path":"/api/v1/health","title":"Check engine readiness","description":"Returns ready only when the database can be queried.","href":"documents/engine-next/?selected=detail-sha256-79598f21834a9ab39310b4276761af775d997c7cfc99dfc9415c8941bc29729c#detail-sha256-79598f21834a9ab39310b4276761af775d997c7cfc99dfc9415c8941bc29729c","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["System"],"facets":[]},{"detailId":"detail-sha256-01e1facad446442a4371c00eac73c58fc8b883b6162ffe79b57d85c8a4d6b15b","operationId":"resolveDraftLinkPreview","method":"POST","path":"/api/v1/link-previews","title":"Resolve a link preview for a draft","description":"Fetches metadata and an optional bounded raster image for one public HTTP(S) URL. Uses the transient link cache and creates no message, durable preview record or original download.","href":"documents/engine-next/?selected=detail-sha256-01e1facad446442a4371c00eac73c58fc8b883b6162ffe79b57d85c8a4d6b15b#detail-sha256-01e1facad446442a4371c00eac73c58fc8b883b6162ffe79b57d85c8a4d6b15b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Previews"],"facets":[]},{"detailId":"detail-sha256-a5aef7d1a679bede9a1b590149f79f9cfba84631648905a39da2914f39221205","operationId":"getMediaImage","method":"GET","path":"/api/v1/media/{hash}","title":"Read a retained preview or original image","description":"Serves only local hash-verified PNG, JPEG or GIF bytes, without fetching the provider. Thumbnails are normalized static PNGs or JPEGs, up to 1024 pixels per axis; originals retain their validated media type. No remote redirects.","href":"documents/engine-next/?selected=detail-sha256-a5aef7d1a679bede9a1b590149f79f9cfba84631648905a39da2914f39221205#detail-sha256-a5aef7d1a679bede9a1b590149f79f9cfba84631648905a39da2914f39221205","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Previews"],"facets":[]},{"detailId":"detail-sha256-effdd6cac386f5da8da2c71a457db1dcf26343814edb15064f9de61ee462d759","operationId":"getMessageEdit","method":"GET","path":"/api/v1/message-edits/{editId}","title":"Reconcile a correction command by its stable UUID","description":"Read-only durable receipt. A 404 does not authorize changing the key after an uncertain submission; repeat the same frozen request if needed. No provider calls or dispatch occur in this query.","href":"documents/engine-next/?selected=detail-sha256-effdd6cac386f5da8da2c71a457db1dcf26343814edb15064f9de61ee462d759#detail-sha256-effdd6cac386f5da8da2c71a457db1dcf26343814edb15064f9de61ee462d759","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-2c92632db48ae530a858fb0b30dab9c90bcbd84d5bb95b5e46630e7f9f4701fa","operationId":"getMessageReactionCommand","method":"GET","path":"/api/v1/message-reaction-commands/{commandId}","title":"Read a durable reaction command receipt","description":"Read-only reconciliation after lost responses. A missing receipt does not authorize a new key for the same uncertain intent. No provider call or dispatch is performed.","href":"documents/engine-next/?selected=detail-sha256-2c92632db48ae530a858fb0b30dab9c90bcbd84d5bb95b5e46630e7f9f4701fa#detail-sha256-2c92632db48ae530a858fb0b30dab9c90bcbd84d5bb95b5e46630e7f9f4701fa","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-045b894ee48012cd15fe97d464879d4bf2e9bcb63e4dc2f34552eaa962ba71f4","operationId":"searchMessages","method":"GET","path":"/api/v1/messages/search","title":"Search retained message text and available metadata","description":"Search the complete retained engine history before pagination, without network retrieval, enrichment or read-state changes. Matching follows shared-content accent/case folding, word prefixes and bounded typing-error tolerance. Current canonical message content is searched by default. Include edit history adds separately labelled verified earlier content revisions, never transport-state revisions or independent correction aliases. Current associated URLs, filenames and cached page titles/descriptions are searched only while their catalog source is current. Metadata coverage can lag immediate message-text coverage. Unreleased schedules and scheduled sends cancelled before dispatch are excluded. Order is newest message position (`timelineAt`, falling back to `createdAt`) at UTC millisecond precision and UUID first, current hit before earlier content revisions, then newest revision timestamp and UUID. New arrivals or corrections can change subsequent results; pages are not a frozen snapshot.","href":"documents/engine-next/?selected=detail-sha256-045b894ee48012cd15fe97d464879d4bf2e9bcb63e4dc2f34552eaa962ba71f4#detail-sha256-045b894ee48012cd15fe97d464879d4bf2e9bcb63e4dc2f34552eaa962ba71f4","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-9ea4be8015abfeb40c9c343c7a717bb69483b6a101ffd51774afc78c0cf0b6ef","operationId":"getMessage","method":"GET","path":"/api/v1/messages/{messageId}","title":"Read a retained message","description":"Returns the latest revision and send evidence. A retained correction-source alias resolves to its canonical logical message, whose id can differ from the requested messageId. Use the scoped context operation when explicit requestedTargetId alias proof is needed.","href":"documents/engine-next/?selected=detail-sha256-9ea4be8015abfeb40c9c343c7a717bb69483b6a101ffd51774afc78c0cf0b6ef#detail-sha256-9ea4be8015abfeb40c9c343c7a717bb69483b6a101ffd51774afc78c0cf0b6ef","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-8b5793c2e7bea34150295a3a13f0d576cbe76aa29ca2f8dd77ebd62ddabcd38c","operationId":"cancelMessage","method":"POST","path":"/api/v1/messages/{messageId}/cancel","title":"Cancel a pending send","description":"Requires the current revision and a queued, known-unsent message at the owning engine, including a future schedule. Cancellation and dispatch share an atomic cutoff before any external provider attempt for that intent, including attachment upload. A stale revision or ineligible state yields state_conflict with currentMessage. Cancellation retires the send intent and preserves any independent retained references. A matching idempotent replay returns the original cancellation snapshot.","href":"documents/engine-next/?selected=detail-sha256-8b5793c2e7bea34150295a3a13f0d576cbe76aa29ca2f8dd77ebd62ddabcd38c#detail-sha256-8b5793c2e7bea34150295a3a13f0d576cbe76aa29ca2f8dd77ebd62ddabcd38c","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-875b9d5a5c92c0eb3a8c80216aa06575ca7f61219459a11458183f9948eaa7d1","operationId":"getMessageEditHistory","method":"GET","path":"/api/v1/messages/{messageId}/edit-history","title":"Read observed content revisions of one retained message","description":"Read-only bounded history of canonical content sources. Resolves retained aliases and excludes delivery-state revisions and unverified correction relationships. Versions never observed cannot be recovered by this query. Newest authored timestamp first with revision UUID tie-breaking; isCurrent is authoritative regardless of timestamp order. Cursor binds engine, account, conversation, canonical message and the exact observed-history snapshot. No provider history/profile/media requests, read receipts, sends or mutations occur.","href":"documents/engine-next/?selected=detail-sha256-875b9d5a5c92c0eb3a8c80216aa06575ca7f61219459a11458183f9948eaa7d1#detail-sha256-875b9d5a5c92c0eb3a8c80216aa06575ca7f61219459a11458183f9948eaa7d1","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-bb1c40e4eb65b4af086d8d0734bda3b8a2d7349c512960e14c3edbd400cdfd87","operationId":"getMessageEditTarget","method":"GET","path":"/api/v1/messages/{messageId}/edit-target","title":"Inspect eligibility and current content before editing","description":"Read-only eligibility for the canonical message. Initially only the latest own plain text message sent by this engine in the current verified protocol session can be corrected. Reply and mention payloads remain ineligible. Eligibility is advisory and rechecked atomically at acceptance and dispatch. No arbitrary time window is imposed.","href":"documents/engine-next/?selected=detail-sha256-bb1c40e4eb65b4af086d8d0734bda3b8a2d7349c512960e14c3edbd400cdfd87#detail-sha256-bb1c40e4eb65b4af086d8d0734bda3b8a2d7349c512960e14c3edbd400cdfd87","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-cfeec4c4723d182d9ff9ebab9db264756a7ac6bcaa6188c07d1cba05e52a20d7","operationId":"editMessage","method":"POST","path":"/api/v1/messages/{messageId}/edits","title":"Accept a durable correction of a sent message","description":"Atomically persists a distinct correction command and operation receipt with an optimistic content revision precondition. The original send and content remain unchanged while queued or in flight. Submitted means written to the protocol connection, not confirmed recipient delivery. Unknown outcomes are not blindly retried. A frozen original sender wire ID is used for every correction. Read the command receipt after a lost response before considering another operation key.","href":"documents/engine-next/?selected=detail-sha256-cfeec4c4723d182d9ff9ebab9db264756a7ac6bcaa6188c07d1cba05e52a20d7#detail-sha256-cfeec4c4723d182d9ff9ebab9db264756a7ac6bcaa6188c07d1cba05e52a20d7","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-4b0aa6a3576a6289ef6bc8dba16784072c58bd8f6093236984bcec4fb20e33b1","operationId":"updatePendingMessage","method":"PATCH","path":"/api/v1/messages/{messageId}/pending","title":"Edit or reschedule a pending message","description":"Replace the full composition, change the schedule, or do both in one transaction at the owning engine. It must be an own queued, known-unsent message with the expected revision. The message ID, destination and creation time are retained. The engine validates new or changed reply, mentions and attachment references, then commits the updated composition and attachment references together. A schedule-only update preserves the accepted composition.\nThe mutation and the dispatch claim share an atomic cutoff before any external provider attempt for this intent, including attachment upload. Stale revision, ineligible state or a winning dispatch claim yields state_conflict with currentMessage. When the mutation wins, a later claim uses the new revision and eligibility time. Matching idempotent replay returns the original result before evaluating current state, attachment availability or time preconditions.","href":"documents/engine-next/?selected=detail-sha256-4b0aa6a3576a6289ef6bc8dba16784072c58bd8f6093236984bcec4fb20e33b1#detail-sha256-4b0aa6a3576a6289ef6bc8dba16784072c58bd8f6093236984bcec4fb20e33b1","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-2f005aa8413e2113993942cbbd5f7447b15ec31b7315d4b146563707822e4055","operationId":"getMessageReactions","method":"GET","path":"/api/v1/messages/{messageId}/reactions","title":"Read retained reactions and current own mutation eligibility","description":"Read-only canonical source snapshot. Missing revisions are null until an observed or submitted reaction set exists. Does not fetch provider data, mark read or allocate revisions.","href":"documents/engine-next/?selected=detail-sha256-2f005aa8413e2113993942cbbd5f7447b15ec31b7315d4b146563707822e4055#detail-sha256-2f005aa8413e2113993942cbbd5f7447b15ec31b7315d4b146563707822e4055","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-2aca9b1cbd0f2c4fd9917e869b95f883cb005e9ba938171049507b858e780152","operationId":"setMessageReactions","method":"POST","path":"/api/v1/messages/{messageId}/reactions","title":"Accept a durable replacement of the own reaction set","description":"Persists a separate reaction command with an own-actor revision precondition. Empty emojis removes the own set. Other actors do not invalidate this precondition. At most one unresolved command per source is allowed. Submitted means written to the connection; unknown transmission is never blindly retried. Source content, activity, history, unread and original outbox stay unchanged.","href":"documents/engine-next/?selected=detail-sha256-2aca9b1cbd0f2c4fd9917e869b95f883cb005e9ba938171049507b858e780152#detail-sha256-2aca9b1cbd0f2c4fd9917e869b95f883cb005e9ba938171049507b858e780152","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-db034c294a1b02d12d812281cb129375f984da1a5ba37c3c0f7a4fe845d56c3d","operationId":"sendScheduledMessageNow","method":"POST","path":"/api/v1/messages/{messageId}/send-now","title":"Make a scheduled message eligible immediately","description":"With the current expected revision, atomically clears scheduledAt on the same queued, known-unsent scheduled intent and makes it eligible immediately. The message ID, destination, composition and attachments remain attached to the same intent. Acceptance records eligibility. Dispatch still requires the owning engine, connectivity and any existing destination prerequisites. This operation and dispatch share the same atomic cutoff as pending edit and cancel, including before provider attachment upload. A stale revision, ineligible state or winning dispatch claim yields state_conflict with currentMessage. Repeating the same key and input returns the original successful result even if dispatch has since started.","href":"documents/engine-next/?selected=detail-sha256-db034c294a1b02d12d812281cb129375f984da1a5ba37c3c0f7a4fe845d56c3d#detail-sha256-db034c294a1b02d12d812281cb129375f984da1a5ba37c3c0f7a4fe845d56c3d","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-d408e138989d05dba4b5e4df17056fb92d434c7c85d88acaba8a7eaa38296ed3","operationId":"getMessageSenderProfile","method":"GET","path":"/api/v1/messages/{messageId}/sender-profile","title":"Read the author's available published profile","description":"Resolves the author from the retained message and message-time protocol identity evidence. May issue a bounded read-only profile query to a known personal address. Room nicknames and current same-name occupants never establish a historical author's personal JID. Missing or undisclosed identity remains unavailable; user-provided vCard JABBERID does not establish it. Does not join rooms, add contacts, subscribe to presence or mark messages read.","href":"documents/engine-next/?selected=detail-sha256-d408e138989d05dba4b5e4df17056fb92d434c7c85d88acaba8a7eaa38296ed3#detail-sha256-d408e138989d05dba4b5e4df17056fb92d434c7c85d88acaba8a7eaa38296ed3","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-fa39235e392b6514e06f2cef69f4eb90ff40caab0515af4acf221a39d4f0d4e4","operationId":"getMessageStar","method":"GET","path":"/api/v1/messages/{messageId}/star","title":"Read the source message star","description":"App-owned state independent of message content revisions and protocol support. Before the first change, starred is false and revisionId and updatedAt are null. Reading does not create state or provider traffic.","href":"documents/engine-next/?selected=detail-sha256-fa39235e392b6514e06f2cef69f4eb90ff40caab0515af4acf221a39d4f0d4e4#detail-sha256-fa39235e392b6514e06f2cef69f4eb90ff40caab0515af4acf221a39d4f0d4e4","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-d22661af12974f8746f2e2997cf5ea42a79e1be1b76fc997fe419b37cb4e0fa9","operationId":"setMessageStar","method":"PUT","path":"/api/v1/messages/{messageId}/star","title":"Star or unstar a retained source message","description":"Atomically compares the star revision, stores an independent immutable star revision, a durable operation receipt and an event. Does not edit message content, bump chat activity, change read state or send anything to the provider. The precondition is null for unchanged initial state. A stale precondition returns state_conflict with currentStar. Replays return the original receipt snapshot, even if later changes occurred; read current state after an uncertain response. An already matching value records a receipt without a new event.","href":"documents/engine-next/?selected=detail-sha256-d22661af12974f8746f2e2997cf5ea42a79e1be1b76fc997fe419b37cb4e0fa9#detail-sha256-d22661af12974f8746f2e2997cf5ea42a79e1be1b76fc997fe419b37cb4e0fa9","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-3188a2a86f617c1a30fbf2a6b045921358214b9b8985e901cf690d00f34a238a","operationId":"getOperation","method":"GET","path":"/api/v1/operations/{operationId}","title":"Reconcile a mutation after an ambiguous response","description":"A receipt proves the local mutation committed. Send receipts prove durable engine acceptance. Request includeAcceptedMessage to read the immutable send acceptance snapshot, including the original composition and scheduled instant. This route exposes the receipt kinds defined by Operation. An ID without an exposed receipt returns 404. Recover the result of updatePendingMessage or sendScheduledMessageNow by replaying the original request with the same key and input.","href":"documents/engine-next/?selected=detail-sha256-3188a2a86f617c1a30fbf2a6b045921358214b9b8985e901cf690d00f34a238a#detail-sha256-3188a2a86f617c1a30fbf2a6b045921358214b9b8985e901cf690d00f34a238a","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Operations"],"facets":[]},{"detailId":"detail-sha256-fb84f383abdd90e1ccbc69f0f9b5ca5c536db593a24bda479451501e56851bb6","operationId":"getMessagePreview","method":"GET","path":"/api/v1/previews/{previewId}","title":"Read a message preview","description":"Reads cached metadata and original image download state. Does not initiate a download.","href":"documents/engine-next/?selected=detail-sha256-fb84f383abdd90e1ccbc69f0f9b5ca5c536db593a24bda479451501e56851bb6#detail-sha256-fb84f383abdd90e1ccbc69f0f9b5ca5c536db593a24bda479451501e56851bb6","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Previews"],"facets":[]},{"detailId":"detail-sha256-e0b8904167308ff2fa398417b325d163fbde1928ad270c36c5ba89fa1f28cfd3","operationId":"downloadPreviewImage","method":"POST","path":"/api/v1/previews/{previewId}/download","title":"Retain the original image for a preview","description":"Explicitly requests the original for a kind=image reference. This ensure operation is safe to retry: concurrent requests share queued work and an already retained file is reused. Failed downloads can be retried. Only validated PNG, JPEG and GIF images up to 32 MiB and bounded pixel dimensions are retained. The local SHA-256 fingerprint is computed-only, not evidence of sender-provided integrity. Link cards do not support this operation.","href":"documents/engine-next/?selected=detail-sha256-e0b8904167308ff2fa398417b325d163fbde1928ad270c36c5ba89fa1f28cfd3#detail-sha256-e0b8904167308ff2fa398417b325d163fbde1928ad270c36c5ba89fa1f28cfd3","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Previews"],"facets":[]},{"detailId":"detail-sha256-6102d7ca1adec7867697ba043526109df7265007af12906d1afa77d41d305453","operationId":"refreshMessagePreview","method":"POST","path":"/api/v1/previews/{previewId}/refresh","title":"Refresh cached link metadata","description":"Explicitly queues fresh metadata for a current retained link reference, bypassing the metadata cache. Existing metadata remains usable during refresh or failure. Concurrent pending refreshes share queued work. Does not edit a message or request an original image download.","href":"documents/engine-next/?selected=detail-sha256-6102d7ca1adec7867697ba043526109df7265007af12906d1afa77d41d305453#detail-sha256-6102d7ca1adec7867697ba043526109df7265007af12906d1afa77d41d305453","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Previews"],"facets":[]},{"detailId":"detail-sha256-93f334361e8d69c9421c495ac17c04ef84b52d4e146a49c5ade0b1ada24140fe","operationId":"listScheduledMessages","method":"GET","path":"/api/v1/scheduled-messages","title":"List scheduled messages across conversations","description":"Lists the selected engine's own queued, known-unsent messages with a configured schedule, including overdue sends waiting for connectivity. Results include their destination. Successful Send now removes the item from this list even if connectivity delays dispatch. Results sort by scheduledAt ascending, then message UUID ascending. Pagination is over current data. Concurrent changes can move items across the cursor boundary.","href":"documents/engine-next/?selected=detail-sha256-93f334361e8d69c9421c495ac17c04ef84b52d4e146a49c5ade0b1ada24140fe#detail-sha256-93f334361e8d69c9421c495ac17c04ef84b52d4e146a49c5ade0b1ada24140fe","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]},{"detailId":"detail-sha256-31513a8a7171f8680b5c3e3a206b26f7b691be3139a043e6dd51899c3e10c8de","operationId":"listSharedContent","method":"GET","path":"/api/v1/shared-content","title":"Browse shared content across retained conversations","description":"Browse the local derived catalog, newest message position (`timelineAt`, falling back to `createdAt`) first with item UUID ties at millisecond precision. Unreleased schedules and scheduled sends cancelled before dispatch are excluded. Account/conversation filters apply before pagination. Metadata search covers URL, filename, visible caption, cached preview title/description, sender, conversation and account label. A background worker indexes visible retained and incoming messages. Listing registers preview enrichment only for the returned image/link references; originals still follow device preferences and explicit download operations. Document/audio entries remain URL references. Video bytes are available only through the explicit content operation; listing does not fetch video metadata or bytes. Backfill or new arrivals may insert items before the current cursor; reload to include them. A conversation filter outside the selected accounts is invalid.","href":"documents/engine-next/?selected=detail-sha256-31513a8a7171f8680b5c3e3a206b26f7b691be3139a043e6dd51899c3e10c8de#detail-sha256-31513a8a7171f8680b5c3e3a206b26f7b691be3139a043e6dd51899c3e10c8de","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["SharedContent"],"facets":[]},{"detailId":"detail-sha256-3a0186e2e0e9e0ce8a2105e75ab8bca4e9b6b3fd34e2764f1c12296b893a845b","operationId":"getSharedContentMedia","method":"GET","path":"/api/v1/shared-content/{itemId}/content","title":"Stream an explicitly selected video or supported document reference","description":"Reads the current retained canonical source before opening its URL through the engine's public-network policy. Never redirects the browser to the provider. Supports one byte range and If-Range; an upstream that ignores Range returns 200 rather than an invented 206. Video accepts MP4, WebM, Ogg video and QuickTime MIME types up to 2 GiB; codec playback remains a browser capability. Document references are restricted by URL extension and provider MIME: .txt/.log/.md/.csv/.json/.xml are served as text/plain up to 2 MiB and .pdf as application/pdf up to 100 MiB. Text MIME must be text/plain or the matching format's text/markdown, text/csv, application/json, text/json, application/xml or text/xml. HTML, SVG, office documents and mismatched MIME types are unsupported. A known complete size is required. This is explicit on-demand streaming, not a retained download: no full-file hash, sender verification, offline availability or transfer state is implied. Listing/mounting UI must not call this operation. Client disconnect cancels the upstream read. HEAD returns 405 without contacting the provider. Multiple or malformed ranges are invalid. JSON, XML and Markdown are returned as plain text, never active markup.","href":"documents/engine-next/?selected=detail-sha256-3a0186e2e0e9e0ce8a2105e75ab8bca4e9b6b3fd34e2764f1c12296b893a845b#detail-sha256-3a0186e2e0e9e0ce8a2105e75ab8bca4e9b6b3fd34e2764f1c12296b893a845b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["SharedContent"],"facets":[]},{"detailId":"detail-sha256-c2061aaad6921b1105042bccf6ad3577fa35483e0c1b3b8d1c03f01a4862838d","operationId":"getVideoThumbnail","method":"GET","path":"/api/v1/shared-content/{itemId}/thumbnail","title":"Read a retained video thumbnail state","description":"Reads local cache state for a current video reference without retrieving provider bytes. A missing cache record is represented as not_requested. Removed references return 404.","href":"documents/engine-next/?selected=detail-sha256-c2061aaad6921b1105042bccf6ad3577fa35483e0c1b3b8d1c03f01a4862838d#detail-sha256-c2061aaad6921b1105042bccf6ad3577fa35483e0c1b3b8d1c03f01a4862838d","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Previews"],"facets":[]},{"detailId":"detail-sha256-0d70d45cc6edaaafddb13d59995eb40716c77cb0bdad9e18a9ae44d1b3a5841d","operationId":"requestVideoThumbnail","method":"POST","path":"/api/v1/shared-content/{itemId}/thumbnail","title":"Ensure a cached video thumbnail","description":"Queues bounded frame extraction for a current retained video reference. Concurrent requests share work; a ready thumbnail is reused. A failed extraction can be explicitly retried. A retained HTTP(S) thumbnail supplied in XMPP file metadata is preferred (at most 1 MiB). Otherwise background extraction reads at most 4 MiB from the beginning and 1 MiB from the end, with a 15 second job deadline, and never retains an original video. Small source videos may fit entirely within that budget. The source is revalidated before publication. Does not send messages or start playback. Missing both a supplied thumbnail and decoder capability returns 503 without provider retrieval.","href":"documents/engine-next/?selected=detail-sha256-0d70d45cc6edaaafddb13d59995eb40716c77cb0bdad9e18a9ae44d1b3a5841d#detail-sha256-0d70d45cc6edaaafddb13d59995eb40716c77cb0bdad9e18a9ae44d1b3a5841d","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Previews"],"facets":[]},{"detailId":"detail-sha256-7d863094c6f6f84c306b8006cf28a43dcddaabc9c282c2beec93fb0364894aa7","operationId":"listStarredMessages","method":"GET","path":"/api/v1/starred-messages","title":"Browse retained starred messages with their source context","description":"Lists current starred messages across accounts or within an account/conversation. Order is source message UTC timestamp at millisecond precision descending, then message UUID descending. Unstarring a cursor message does not break paging. This is a live collection, not a frozen snapshot; newer stars can appear before the current page. No provider requests, enrichment or downloads are started. Conversation favorites are independent of message stars.","href":"documents/engine-next/?selected=detail-sha256-7d863094c6f6f84c306b8006cf28a43dcddaabc9c282c2beec93fb0364894aa7#detail-sha256-7d863094c6f6f84c306b8006cf28a43dcddaabc9c282c2beec93fb0364894aa7","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","deprecated":false,"tags":["Messages"],"facets":[]}],"schemas":[{"detailId":"detail-sha256-102bc0afaaaf885e7350a3e14ed5317f57e6129b962dde6624c5a4ec3842c3f0","name":"Account","description":"Stable account identity and its current initial revision.","href":"documents/engine-next/?selected=detail-sha256-102bc0afaaaf885e7350a3e14ed5317f57e6129b962dde6624c5a4ec3842c3f0#detail-sha256-102bc0afaaaf885e7350a3e14ed5317f57e6129b962dde6624c5a4ec3842c3f0","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"81a6bc6dc65b1fe9ec2088a50f41d3d8f5de2dca4b235aff97e0cd6d1fbbaf30","projectionSHA256":"22dac9ff36999339d32b38894e0b6492191702c405baf490542c3d142a2dd668"},{"detailId":"detail-sha256-1317f030dfadb3f52c6ceaa8cbe6ce6a00e454a0240e3f97adabcecf1c8fcafd","name":"AccountPage","description":"A keyset-paginated account collection.","href":"documents/engine-next/?selected=detail-sha256-1317f030dfadb3f52c6ceaa8cbe6ce6a00e454a0240e3f97adabcecf1c8fcafd#detail-sha256-1317f030dfadb3f52c6ceaa8cbe6ce6a00e454a0240e3f97adabcecf1c8fcafd","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"a8f78aa2ca670e6c8a0b3174b6e429ea2cd32c80f4171f4c044c6c99dfa4e5de","projectionSHA256":"8c68343a268d7f8c95af3c6df2a64dc2d567615df9c2ce4dc1a5d434c949459c"},{"detailId":"detail-sha256-efbceac99aa742efaab7c4ceb3147031946b979fbb4baedd932f7c9e420db34b","name":"Avatar","description":"Retained profile image projection, scoped to an account and canonical protocol address. Empty imageHash means the provider explicitly returned no image. Provider errors keep the last known image.","href":"documents/engine-next/?selected=detail-sha256-efbceac99aa742efaab7c4ceb3147031946b979fbb4baedd932f7c9e420db34b#detail-sha256-efbceac99aa742efaab7c4ceb3147031946b979fbb4baedd932f7c9e420db34b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"388942e75678dbd39a25a6fd30a33871df89de1e08422afa8509449a021908c1","projectionSHA256":"402b507b250c8ef2336e689d38a302c7cee438d2acad6d225de75f4225a5e57e"},{"detailId":"detail-sha256-afad3e9a54b1ebce8de5a885dfbe32460e1743db33773775190588e7df2cc52c","name":"AvatarPage","description":"Account-scoped profile metadata page.","href":"documents/engine-next/?selected=detail-sha256-afad3e9a54b1ebce8de5a885dfbe32460e1743db33773775190588e7df2cc52c#detail-sha256-afad3e9a54b1ebce8de5a885dfbe32460e1743db33773775190588e7df2cc52c","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"dff01483a3c64796df518a35cf8dd38166fa5a8ee30b9b7af5cd0a96c8836510","projectionSHA256":"b06a16249a07521b60fd62d977a2c67f23b977b16d35e1f057fb897049203eb8"},{"detailId":"detail-sha256-0662015c04f298ef6fe4162f86a83c448bb294582ac62935412701eaa2b8d12e","name":"CancelMessage","description":"Cancel a queued, known-unsent message using its current revision. A state conflict returns currentMessage.","href":"documents/engine-next/?selected=detail-sha256-0662015c04f298ef6fe4162f86a83c448bb294582ac62935412701eaa2b8d12e#detail-sha256-0662015c04f298ef6fe4162f86a83c448bb294582ac62935412701eaa2b8d12e","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"716585f5e4fb5219a3b089c6353a229ed099fb7c52b5b82ef370e36a5358c301","projectionSHA256":"9a9794b1220055a719be3a4d4d5ad468a721a81447e395663be67587bc4ce7de"},{"detailId":"detail-sha256-9c8bf007086fb615bc81edd9b5abc8f2b07f9b4d1e0a6a524335bc9188480d3c","name":"Capabilities","description":"Implementation and discovered feature evidence scoped to one account.","href":"documents/engine-next/?selected=detail-sha256-9c8bf007086fb615bc81edd9b5abc8f2b07f9b4d1e0a6a524335bc9188480d3c#detail-sha256-9c8bf007086fb615bc81edd9b5abc8f2b07f9b4d1e0a6a524335bc9188480d3c","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"32136be531861eff28f8091d8c748861b9bd05c0dec97c24d32f89011693be39","projectionSHA256":"07477acb9f8f9ee74b2811a1264454eeba324afdb73a23153eaad44eb2342bed"},{"detailId":"detail-sha256-181fcbedc4c5653d8910f30639dd507623d9a7a4190636b5ad4f53ad4b6e9c6a","name":"CapabilityDiscovery","description":"Session-local discovery status and the bounded entity observations collected so far.","href":"documents/engine-next/?selected=detail-sha256-181fcbedc4c5653d8910f30639dd507623d9a7a4190636b5ad4f53ad4b6e9c6a#detail-sha256-181fcbedc4c5653d8910f30639dd507623d9a7a4190636b5ad4f53ad4b6e9c6a","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"f554387185f5d1572d8f0e0124e9b7b1daf03442f25aa8b586da68af8f678294","projectionSHA256":"02bef946aacbb44afb13c2953207a39c1f291e6e78ee632e5400f13c022be5d5"},{"detailId":"detail-sha256-4d6ddd43d8e10bcf5fafc668c2bf556f9377b094cabe0113c7b09fe7f3233729","name":"CapabilityFeature","description":"One feature compared across Oie implementation, protocol definition and scoped server evidence.","href":"documents/engine-next/?selected=detail-sha256-4d6ddd43d8e10bcf5fafc668c2bf556f9377b094cabe0113c7b09fe7f3233729#detail-sha256-4d6ddd43d8e10bcf5fafc668c2bf556f9377b094cabe0113c7b09fe7f3233729","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"5d47867d495dd9c96b2032f994d8e507290350d42e761bfc2e047d6007b3984c","projectionSHA256":"4db8127b4460032b6b9ecbbd0674e8c9abcf475a2361ed60841906925fff77ba"},{"detailId":"detail-sha256-14df951871160d3b32bc8c201d03be4fde2547b6a6656104fc1ba0644b46c396","name":"ConfigureConnection","description":"Desired enabled connection. Repeating unchanged configuration does not create another session. Credentials are kept in private engine-local files and are excluded from reads/events.","href":"documents/engine-next/?selected=detail-sha256-14df951871160d3b32bc8c201d03be4fde2547b6a6656104fc1ba0644b46c396#detail-sha256-14df951871160d3b32bc8c201d03be4fde2547b6a6656104fc1ba0644b46c396","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"d41a95cdd67fa4e9a4182d595970d72afff5012469471070b9d166608725ebf8","projectionSHA256":"a39c01e408530da1810ccca92f16c9f4f3c3d2365e4195d3c42b95ff2b8eac02"},{"detailId":"detail-sha256-605f8f9895e00f48c2f416b1e318daaf9dd5f8f0c0a7b064ac70a20194be8906","name":"Connection","description":"Current owning-engine connection state. Contains no credentials.","href":"documents/engine-next/?selected=detail-sha256-605f8f9895e00f48c2f416b1e318daaf9dd5f8f0c0a7b064ac70a20194be8906#detail-sha256-605f8f9895e00f48c2f416b1e318daaf9dd5f8f0c0a7b064ac70a20194be8906","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"d06e7b57175254cd4cfe74ed013cc5c68160e40660828d9ffd7bc3bf5c24c558","projectionSHA256":"0db8fe7b1ac71aa3bad3ff466344b195bbe4466d3b83ea7f6073cfb74868c6d1"},{"detailId":"detail-sha256-b3e33fb699332353c6c50b7e9c7336942e524be57113004272ae1992f75bd740","name":"Contact","description":"A retained protocol roster entry, separate from inferred peers, room occupants and future app-owned identity linking.","href":"documents/engine-next/?selected=detail-sha256-b3e33fb699332353c6c50b7e9c7336942e524be57113004272ae1992f75bd740#detail-sha256-b3e33fb699332353c6c50b7e9c7336942e524be57113004272ae1992f75bd740","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"16b4e7ad29ffcab407124b5701af6eeccf59fa16a6c9dce28c265237053f1030","projectionSHA256":"fc3ffd246b3fdebe6092234b1b28b3f021c23e69c0a8a4375f697e51b1d9468b"},{"detailId":"detail-sha256-30ee0415277eb252e72bdd4e6ab7aab9a75d44e481e57438d59f1df9b044e837","name":"ContactPage","description":"Bounded saved contact results and observation coverage.","href":"documents/engine-next/?selected=detail-sha256-30ee0415277eb252e72bdd4e6ab7aab9a75d44e481e57438d59f1df9b044e837#detail-sha256-30ee0415277eb252e72bdd4e6ab7aab9a75d44e481e57438d59f1df9b044e837","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"a830aff1974f65b27c7212513b801e3665d94f045808c1bc593097b41563349e","projectionSHA256":"74a9c4bf69af39e42d2e05a1db9c2f96a6f7591af22b9e4f8fb8b90c363bdcf3"},{"detailId":"detail-sha256-1a3dba8bc8eef74ea5d931f72ebcfcc334500d4718202679cab64ac4d5e3d213","name":"ContactSource","description":"Last observed roster coverage for one account. A known snapshot remains cached when disconnected.","href":"documents/engine-next/?selected=detail-sha256-1a3dba8bc8eef74ea5d931f72ebcfcc334500d4718202679cab64ac4d5e3d213#detail-sha256-1a3dba8bc8eef74ea5d931f72ebcfcc334500d4718202679cab64ac4d5e3d213","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"cdbfe5a3932214b67126d484702941d300bf105945e2c1b103eea3a1d1584d13","projectionSHA256":"da23ea525c4fce957bc15fa1efd6e8a6be3a021b7a73587c8aca97e989c1e9c7"},{"detailId":"detail-sha256-ea664afcf59baaa8e3be243bd191d5f23e248fb3eb6cb3d630431c27096adc24","name":"Conversation","description":"One account-scoped conversation. Direct conversations support text sending; saved rooms and authorized room archives are recovered read-only in this increment.","href":"documents/engine-next/?selected=detail-sha256-ea664afcf59baaa8e3be243bd191d5f23e248fb3eb6cb3d630431c27096adc24#detail-sha256-ea664afcf59baaa8e3be243bd191d5f23e248fb3eb6cb3d630431c27096adc24","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"fba103b570023b05c98006ba9bbfea825852a6fcf8625be3d329bb86037572e7","projectionSHA256":"a374f94f99369b766ebcf424fd79edf451243d8c0a8ce58dcd23369bac8b7afc"},{"detailId":"detail-sha256-7556d0ed1dd862a72df978a6362b4bbff24b9ee9889d5ee551e1515da684e47b","name":"ConversationDetails","description":"Session-local conversation observations combined with the owning account connection, without changing retained conversation content.","href":"documents/engine-next/?selected=detail-sha256-7556d0ed1dd862a72df978a6362b4bbff24b9ee9889d5ee551e1515da684e47b#detail-sha256-7556d0ed1dd862a72df978a6362b4bbff24b9ee9889d5ee551e1515da684e47b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"8a92f587ec6218eb02f5bc3d6c49945afb219c3477ccc0be21e6d072c041dab2","projectionSHA256":"a5fa6529304cdd623cad3020d59b8fcc7256d948a8af40d218b5e8a707d9c4ec"},{"detailId":"detail-sha256-f951fb31d9f9cfc28dc6ef771f38c53d259adc23913a13894129e818d9370df0","name":"ConversationPage","description":"Conversations in descending engine activity order. New activity can move items between pages; reconcile using stable IDs and SSE.","href":"documents/engine-next/?selected=detail-sha256-f951fb31d9f9cfc28dc6ef771f38c53d259adc23913a13894129e818d9370df0#detail-sha256-f951fb31d9f9cfc28dc6ef771f38c53d259adc23913a13894129e818d9370df0","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"e2dc5f337bc02dcb62efebb1cc5119ebd116956b11bb20faddb02f4ac84b1fc5","projectionSHA256":"136713344027626797d4f558cdd417ae6ca40d64c1da9d0a8e9a8d37987e650f"},{"detailId":"detail-sha256-91a5f5dd910019b284cbfffa273314ce036fd7faa20c5f507545989f3740daf7","name":"ConversationParticipant","description":"A scoped peer or room-occupant observation; its identifier is not a verified personal identity.","href":"documents/engine-next/?selected=detail-sha256-91a5f5dd910019b284cbfffa273314ce036fd7faa20c5f507545989f3740daf7#detail-sha256-91a5f5dd910019b284cbfffa273314ce036fd7faa20c5f507545989f3740daf7","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"66f45a788d10668dae175299742125817fa31272e9b1d0f3ddebdf12359e7584","projectionSHA256":"f9b291eb61836c37469a33ddd33ecf5671fd95f6f619281c8280921dfdbef084"},{"detailId":"detail-sha256-899dce8481ada050db1651051bbc9e3ac3174234dfddfc56d0cc415b668079dd","name":"ConversationParticipants","description":"Bounded peer or visible-occupant snapshot; no persistent membership roster or completeness guarantee.","href":"documents/engine-next/?selected=detail-sha256-899dce8481ada050db1651051bbc9e3ac3174234dfddfc56d0cc415b668079dd#detail-sha256-899dce8481ada050db1651051bbc9e3ac3174234dfddfc56d0cc415b668079dd","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"2c45458da337c1862a3e92a905bf98ab1a9abeda67466455a4670d3826db8ca9","projectionSHA256":"afdc0cba22822af7ba19f1357365c02693de8fdf8162b7eadc3ec70e966128ef"},{"detailId":"detail-sha256-8b12406a28434c1276b7f4491d4b524c682c5e9e85b895de3a49d7dca5084749","name":"ConversationReadState","description":"Durable app-owned read revision with the current retained unread count.","href":"documents/engine-next/?selected=detail-sha256-8b12406a28434c1276b7f4491d4b524c682c5e9e85b895de3a49d7dca5084749#detail-sha256-8b12406a28434c1276b7f4491d4b524c682c5e9e85b895de3a49d7dca5084749","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"bf24b382c8001727a2a1c6ab92ff5bab196066d210e5e09457b9b24a4c661da9","projectionSHA256":"7730775f5bfefb4e98ed4be82b3d671f52c77e5e8414d47b452b2d5b00c96774"},{"detailId":"detail-sha256-373355355e8e80595c4dd9e997abe610a33f2aac0c00a60ee3392f5c1da5b3f5","name":"DetailState","description":"Observation state; unavailable or missing information never means an empty room or an offline person.","href":"documents/engine-next/?selected=detail-sha256-373355355e8e80595c4dd9e997abe610a33f2aac0c00a60ee3392f5c1da5b3f5#detail-sha256-373355355e8e80595c4dd9e997abe610a33f2aac0c00a60ee3392f5c1da5b3f5","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"5081ea69a26aaac26390a65ed119733f19829a340798e566a9989e177a2d2546","projectionSHA256":"36f8818faa23a9835b0eb78a18297139e6eccd07c57cc823ce1c030028ba7c52"},{"detailId":"detail-sha256-3d1aa84413e960a4a94b4437a2471c12812b5f08acefff76e0a1a39b3b2fce64","name":"DiscoveredService","description":"A validated entity response with advertised namespaces, identities and observation state.","href":"documents/engine-next/?selected=detail-sha256-3d1aa84413e960a4a94b4437a2471c12812b5f08acefff76e0a1a39b3b2fce64#detail-sha256-3d1aa84413e960a4a94b4437a2471c12812b5f08acefff76e0a1a39b3b2fce64","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"0dadc36c543ca73c6fe762342314e33ec17d94e92f02de7340764da6bb7379d8","projectionSHA256":"e353a2cd92010ac31bb0ac4487e396f81ad60c436084542d073e4d31a34aea19"},{"detailId":"detail-sha256-b91ffa58baa6c07b1ad0264b0ca5689afc901698d7eec13040ebe0f6aae8833c","name":"DraftLinkPreview","description":"Transient link metadata for a draft composition.","href":"documents/engine-next/?selected=detail-sha256-b91ffa58baa6c07b1ad0264b0ca5689afc901698d7eec13040ebe0f6aae8833c#detail-sha256-b91ffa58baa6c07b1ad0264b0ca5689afc901698d7eec13040ebe0f6aae8833c","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"84f808902440962e15fd5b3dfa48eabee0ffd0dd8f518fe6e41e734b237c44d6","projectionSHA256":"efef4b7d2a1f45d40b9fb3f834f16b7cbd25a9c677884b81b26ac4c4e6d9833e"},{"detailId":"detail-sha256-29bd98bb6338e69de41c9ea740dedf252b862dd7296e735c7a3b9a250473e158","name":"DraftLinkPreviewImage","description":"Optional bounded raster image for a draft link preview.","href":"documents/engine-next/?selected=detail-sha256-29bd98bb6338e69de41c9ea740dedf252b862dd7296e735c7a3b9a250473e158#detail-sha256-29bd98bb6338e69de41c9ea740dedf252b862dd7296e735c7a3b9a250473e158","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"fecad1b901bc553aa82a8701237de27cb8f88d912a485106b955bbdaf11c9fad","projectionSHA256":"10b91af6b88622fad52a4d29e93c8f924868aa4e55a9d5c7e894daf9b181dca8"},{"detailId":"detail-sha256-34de63697d55d1d26483702b86c597b80b03ec302024407a6c50956795155263","name":"DraftLinkPreviewRequest","description":"Public HTTP or HTTPS URL detected in a draft.","href":"documents/engine-next/?selected=detail-sha256-34de63697d55d1d26483702b86c597b80b03ec302024407a6c50956795155263#detail-sha256-34de63697d55d1d26483702b86c597b80b03ec302024407a6c50956795155263","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"091d81e4bd3f4a3790c9f63ceb9cded9036c067ae17c9c8346c1d7563a88b4ad","projectionSHA256":"6517ae61cac273eac898cca36245473dc4613192448aa587ac980d0b4e9d22e3"},{"detailId":"detail-sha256-6c47814e666404565ce757b1d5559daa796fe15fbf8e7cef75db8d2a572b7ca2","name":"EditMessage","description":"Immutable correction intent; changing either field requires a new operation after a definitive outcome.","href":"documents/engine-next/?selected=detail-sha256-6c47814e666404565ce757b1d5559daa796fe15fbf8e7cef75db8d2a572b7ca2#detail-sha256-6c47814e666404565ce757b1d5559daa796fe15fbf8e7cef75db8d2a572b7ca2","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"bff4eac03984475dd7f196ed32db86ed024d2b39f5f0d5a0804c157bbb553162","projectionSHA256":"f04149ec7184ba87599680e202c1e40400984819185af11c81a45ceab232de89"},{"detailId":"detail-sha256-101cba4b5f77aa32b31a0ef2542ec00575d910ac7c5b1fd78660dd89a6e054ca","name":"Engine","description":"Persistent engine identity and event boundary.","href":"documents/engine-next/?selected=detail-sha256-101cba4b5f77aa32b31a0ef2542ec00575d910ac7c5b1fd78660dd89a6e054ca#detail-sha256-101cba4b5f77aa32b31a0ef2542ec00575d910ac7c5b1fd78660dd89a6e054ca","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"097ffdf460769686d50c8a5b28c70157a3e35849e0717acfef0b7a848a61b8e6","projectionSHA256":"41623769b4055b5ad46f9d05468573e9225b1d773f1634937b42181bf5a65a29"},{"detailId":"detail-sha256-e543624a7a07acaea7e85c7ded412a12e0ed026e41985dfa8f75bcdd6cefbbc6","name":"Event","description":"Durable event with the payload corresponding to its type. Accounts, connections, conversations, and messages are separate payloads. Payloads are snapshots at the event time. Refresh affected retained pages after message or conversation updates; validated corrections can collapse previously separate source UUIDs into one logical message. Historical event snapshots do not replace the current canonical projection. No credentials or raw protocol errors are included.","href":"documents/engine-next/?selected=detail-sha256-e543624a7a07acaea7e85c7ded412a12e0ed026e41985dfa8f75bcdd6cefbbc6#detail-sha256-e543624a7a07acaea7e85c7ded412a12e0ed026e41985dfa8f75bcdd6cefbbc6","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"c6a3dc0bcf0e2c574b0ba9975105b6b8c53a51d13f72f37ab93e63a6b8f64537","projectionSHA256":"7b700e3e57b31b9f9582393ca44d0f0b02be2d6229bcd9578eaa0fcf557287ce"},{"detailId":"detail-sha256-cde0cb7b468936bf9286db321940c731c6e61d7c5ed77883b74fa2f877371b52","name":"Health","description":"Readiness of the engine store.","href":"documents/engine-next/?selected=detail-sha256-cde0cb7b468936bf9286db321940c731c6e61d7c5ed77883b74fa2f877371b52#detail-sha256-cde0cb7b468936bf9286db321940c731c6e61d7c5ed77883b74fa2f877371b52","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"6a4d683e4ce4959889a937582ba3d6268a6ac66be86abb55976f2bb5e4503a01","projectionSHA256":"996f866be4bacdb611fcbd633840df8ba78bf484e80730bba428ed78c15d0b95"},{"detailId":"detail-sha256-5217cfcc57b58e859498fef6e3fb81d5af3ae08bf395a594efb22884b7a7833b","name":"HistoryStatus","description":"Last history recovery pass; counts describe this engine's retained records, not total provider history.","href":"documents/engine-next/?selected=detail-sha256-5217cfcc57b58e859498fef6e3fb81d5af3ae08bf395a594efb22884b7a7833b#detail-sha256-5217cfcc57b58e859498fef6e3fb81d5af3ae08bf395a594efb22884b7a7833b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"56a69d062a22ebb2f8143b8cfbe4caa88b56f903ac06a3da1862cd925dd415a2","projectionSHA256":"41659f11718612c7efc3c250dfb3ccefc0c10cd46c24081b6559393ae4f2fd3e"},{"detailId":"detail-sha256-04487a3fd713f2330b2ffd2f26611e8956e29c26f40675eed5792da95b58a920","name":"ID","description":"Canonical lowercase UUIDv7; IDs do not establish causal order.","href":"documents/engine-next/?selected=detail-sha256-04487a3fd713f2330b2ffd2f26611e8956e29c26f40675eed5792da95b58a920#detail-sha256-04487a3fd713f2330b2ffd2f26611e8956e29c26f40675eed5792da95b58a920","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"c4764c084a1a233f8fef7c6d135ca1b9e89dfbede36bc876ccd3698693f581bb","projectionSHA256":"01fa9d66a1e4293ba873f11bc97c31e8b25636947b3ee8280d7f666d58db72cc"},{"detailId":"detail-sha256-828a43f523f789cd4ba17d028f623e2e4ef91c0cbddd4f5bf0d59837ad731653","name":"JoinRoom","description":"Explicit room-entry command with optimistic intent revision.","href":"documents/engine-next/?selected=detail-sha256-828a43f523f789cd4ba17d028f623e2e4ef91c0cbddd4f5bf0d59837ad731653#detail-sha256-828a43f523f789cd4ba17d028f623e2e4ef91c0cbddd4f5bf0d59837ad731653","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"1759a4383816125f7acc0561891b5a049cb7702261f0f7dd6165a5868e8439de","projectionSHA256":"224be57feb610780d72225da3165d6e4c1753628d4723854a7b9f7533784ff19"},{"detailId":"detail-sha256-97aa467f9f07146fc3767351ba0038c83ba3bc7ee21de9b2857536c60772d0b8","name":"LeaveRoom","description":"Explicit room-exit command preserving retained history and pending work.","href":"documents/engine-next/?selected=detail-sha256-97aa467f9f07146fc3767351ba0038c83ba3bc7ee21de9b2857536c60772d0b8#detail-sha256-97aa467f9f07146fc3767351ba0038c83ba3bc7ee21de9b2857536c60772d0b8","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"48d830fd5dfbd080aa43c4d822c5217775a27a2e1325d1ca00893d0fca5b3f73","projectionSHA256":"5a023e100b2db5c8a1cf16f46ff5dcfd4a9c0dc76c3e4e60a29d4715a8e12be4"},{"detailId":"detail-sha256-a86540b8ea66e8ccf4241cfd680b205d7ae199d53338c7e0b6b83a2f28063105","name":"MarkMessagesRead","description":"Exact message identities observed by the requesting client.","href":"documents/engine-next/?selected=detail-sha256-a86540b8ea66e8ccf4241cfd680b205d7ae199d53338c7e0b6b83a2f28063105#detail-sha256-a86540b8ea66e8ccf4241cfd680b205d7ae199d53338c7e0b6b83a2f28063105","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"7ec075f6b76be026afb4bf3a8dcdbc516b09655fce54cff4c1f8223e0fa81211","projectionSHA256":"bf6c153ebfbd1d79692b70aa3234478aeda6714f1ae9396d29b30c2780571e28"},{"detailId":"detail-sha256-ff8eae2c80ea647d1f1bd18612f9cd4f2352e7ead265b65092ca80fe8e8a0bed","name":"MentionCandidate","description":"A currently observed room occupant with readable insertion text and effective reference mode.","href":"documents/engine-next/?selected=detail-sha256-ff8eae2c80ea647d1f1bd18612f9cd4f2352e7ead265b65092ca80fe8e8a0bed#detail-sha256-ff8eae2c80ea647d1f1bd18612f9cd4f2352e7ead265b65092ca80fe8e8a0bed","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"09156c787d03fccb42b1dc20eea5860377ef74224cad42f26a50525154191717","projectionSHA256":"abdef49a1a0f226d0f679e6c490490a7893c9a9099eb773f23c2c935646450dd"},{"detailId":"detail-sha256-f73c9e7a48a2a1d52a7438cbc97ac8fc5ef5ee78761a1fe6ed9541eeadb6f43c","name":"MentionCandidates","description":"Bounded visible-occupant choices without personal protocol identifiers or a completeness claim.","href":"documents/engine-next/?selected=detail-sha256-f73c9e7a48a2a1d52a7438cbc97ac8fc5ef5ee78761a1fe6ed9541eeadb6f43c#detail-sha256-f73c9e7a48a2a1d52a7438cbc97ac8fc5ef5ee78761a1fe6ed9541eeadb6f43c","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"bc68d8403aad35b20fb3ebfaf803838410ffb60f23160d22bdf50deb07d15f83","projectionSHA256":"9a3bb73f716da7ba5634f3b56b28bf4753faa0934b4fc4b9232fef2a7889d9c2"},{"detailId":"detail-sha256-f76307c26171601745b933c860f4dd73f9f9154ceb496dc7c95f88f9e39709c1","name":"MentionSelection","description":"A user-selected, account-and-room-scoped participant with an authored Unicode text span.","href":"documents/engine-next/?selected=detail-sha256-f76307c26171601745b933c860f4dd73f9f9154ceb496dc7c95f88f9e39709c1#detail-sha256-f76307c26171601745b933c860f4dd73f9f9154ceb496dc7c95f88f9e39709c1","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"fba6f5fc87f230696b49380e2b6de7a7818c3aaf95eeddaa981c0f35ef79d17c","projectionSHA256":"c31d0c4eaa681cdf3bf5603416da7f60170b86dcfdabc2fb666f9ce3c78165f1"},{"detailId":"detail-sha256-73cc4be15d6e2ae1883af55e8227ad98d92c6cb71204d3cbd39bfdf3a3d1e974","name":"Message","description":"Retained original text and actual send evidence. submitted means the stanza was written to the authenticated stream; it does not prove provider acceptance, recipient delivery, or read state. unknown is not automatically resent.","href":"documents/engine-next/?selected=detail-sha256-73cc4be15d6e2ae1883af55e8227ad98d92c6cb71204d3cbd39bfdf3a3d1e974#detail-sha256-73cc4be15d6e2ae1883af55e8227ad98d92c6cb71204d3cbd39bfdf3a3d1e974","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"6b810cd4ea9502af9e05e5a41e953b88956642950fbc3afd046b492802dd1c77","projectionSHA256":"4d9581abd3dfdcf8758a2d76ee72d29b97af3b7f22ced830be55f50de9a7fba4"},{"detailId":"detail-sha256-b41b469c67825b110c18b0143f6b7765ccdfd151afbf35816f4dbb4d5271887b","name":"MessageContext","description":"Bounded retained timeline window. Neighbor availability is relative to the returned extremes. Validated correction-source aliases resolve to the original logical message UUID returned as targetId. Page outward through listMessages using the oldest item UUID with direction older and the newest item UUID with direction newer. Neighbor flags describe availability beyond these returned extremes.","href":"documents/engine-next/?selected=detail-sha256-b41b469c67825b110c18b0143f6b7765ccdfd151afbf35816f4dbb4d5271887b#detail-sha256-b41b469c67825b110c18b0143f6b7765ccdfd151afbf35816f4dbb4d5271887b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"b43318993daf5dbf5514cba882c71771e67630e883d15bf70b0f57399a74da30","projectionSHA256":"e0a831041efbcd87860b5aaea1cc63372a6fdca312c2ccaf4e1720a7e0b85149"},{"detailId":"detail-sha256-d625129e353b3a208dc608eec0ce994288dec569f066b3584ddd06e041c58727","name":"MessageEditCommand","description":"Durable correction intent and its actual transmission state, separate from the original message send.","href":"documents/engine-next/?selected=detail-sha256-d625129e353b3a208dc608eec0ce994288dec569f066b3584ddd06e041c58727#detail-sha256-d625129e353b3a208dc608eec0ce994288dec569f066b3584ddd06e041c58727","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"7d9aede1def66afebe9ed05bd3ce563094752b41eb648a10bb00480033bf9df2","projectionSHA256":"f9a307c6fc3d13d7d3ed4035605dde68301b16a39e07301b4ac3904320544bfd"},{"detailId":"detail-sha256-fcfcc8205d16bda85a2b12e821fd9aa8e6fd540e8c4366d968c607ca395f2e4c","name":"MessageEditHistoryItem","description":"One immutable observed content version, not a transport-state transition.","href":"documents/engine-next/?selected=detail-sha256-fcfcc8205d16bda85a2b12e821fd9aa8e6fd540e8c4366d968c607ca395f2e4c#detail-sha256-fcfcc8205d16bda85a2b12e821fd9aa8e6fd540e8c4366d968c607ca395f2e4c","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"a4a6e789fbb5fd0d4ab6d726d60771f7317f32968933104e3410ea5c0c275a42","projectionSHA256":"000bdbcc82dc7732c7b4acb3d9b98178f8e790816c0d5c417ab44f19ab7e12fb"},{"detailId":"detail-sha256-5718edfb29241023a80598f88f4419a931cf256c43104c391d5a92da5c8d95ee","name":"MessageEditHistoryPage","description":"A bounded page from an exact snapshot of one canonical message's observed content history.","href":"documents/engine-next/?selected=detail-sha256-5718edfb29241023a80598f88f4419a931cf256c43104c391d5a92da5c8d95ee#detail-sha256-5718edfb29241023a80598f88f4419a931cf256c43104c391d5a92da5c8d95ee","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"afd55b557ea5d6a9118128b96139ce7c49b2173395b9a32ca398e461dbd71833","projectionSHA256":"63801b91e1f59cf1ca8132e7aec9a10f3239983571f98af3c2b58255012d320b"},{"detailId":"detail-sha256-01c51c19a2268a65a8787c5a430cbd9cc63e7ca93d273ceaac8297608da82dbd","name":"MessageEditTarget","description":"Current canonical text and advisory eligibility for a distinct sent-message correction.","href":"documents/engine-next/?selected=detail-sha256-01c51c19a2268a65a8787c5a430cbd9cc63e7ca93d273ceaac8297608da82dbd#detail-sha256-01c51c19a2268a65a8787c5a430cbd9cc63e7ca93d273ceaac8297608da82dbd","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"488638899c5b6797312adf1ce0bea3cc6c87b98a7ee143e8cc6adc626a68fbca","projectionSHA256":"d5d8f6446702d89ae3506b45ae54fc1742c6232a3d37356c6e12145998f839ee"},{"detailId":"detail-sha256-76fe6f5908dbe1320566c488229a3883727b58074a2508d037c0939e2abe398e","name":"MessageMention","description":"Accepted mention selection with frozen text or structured delivery mode; protocol targets remain private to the engine.","href":"documents/engine-next/?selected=detail-sha256-76fe6f5908dbe1320566c488229a3883727b58074a2508d037c0939e2abe398e#detail-sha256-76fe6f5908dbe1320566c488229a3883727b58074a2508d037c0939e2abe398e","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"27277bd77622c7af669a4e8f7b466bf7823caa76f9df662183a1d7f89012b291","projectionSHA256":"d5e4cd76123fcb99bc4ff35f759d8484fad4a809f4852f714b38211604ee09f6"},{"detailId":"detail-sha256-a1a8230c22de769432ac77348ef4453ce246ed2e11f3e9dffb19067f89b6974b","name":"MessagePage","description":"Visible logical messages newest first by timelineAt or createdAt at UTC millisecond precision and UUID tie-break. Unreleased schedules and scheduled sends cancelled before dispatch are excluded. Validated correction sources are retained as revisions rather than additional timeline items. Use nextCursor for records in the requested direction; render each page in reverse for a chronological timeline. For newer pages, nextCursor is the newest returned UUID, while older pages use the oldest returned UUID.","href":"documents/engine-next/?selected=detail-sha256-a1a8230c22de769432ac77348ef4453ce246ed2e11f3e9dffb19067f89b6974b#detail-sha256-a1a8230c22de769432ac77348ef4453ce246ed2e11f3e9dffb19067f89b6974b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"843e48aee0bbcd51f3e1fac56a6d4d8d970ed4838daf76d4c9275c3317ffa09a","projectionSHA256":"71e552e1c4a810e81ca041ee0254b037659582c23fecc303c7a901bfccef7199"},{"detailId":"detail-sha256-60dbc0791296996a88275ecee32451d7d3863b1a2462d726c6291cb5b20dbd76","name":"MessagePreview","description":"Source-linked cached metadata. Entity UUID remains stable as enrichment/download revisions change. An absent imageHash means no local thumbnail is available. Image references without a thumbnail require explicit original download before preview/expansion.","href":"documents/engine-next/?selected=detail-sha256-60dbc0791296996a88275ecee32451d7d3863b1a2462d726c6291cb5b20dbd76#detail-sha256-60dbc0791296996a88275ecee32451d7d3863b1a2462d726c6291cb5b20dbd76","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"cc8c57ae3f642a39c966dffa0f78f6b87d913c1c31e98b36420810da2f1d5259","projectionSHA256":"d2c9463c746fd184778af5e576fc8295ea7c28e5760eefcbb89bef3f7d52c6da"},{"detailId":"detail-sha256-d55e7df1d271809e773dc87d46d33c24cd240e1c71d089f7e2a6d67794edc876","name":"MessageReactionCommand","description":"Durable immutable reaction intent and current transmission evidence.","href":"documents/engine-next/?selected=detail-sha256-d55e7df1d271809e773dc87d46d33c24cd240e1c71d089f7e2a6d67794edc876#detail-sha256-d55e7df1d271809e773dc87d46d33c24cd240e1c71d089f7e2a6d67794edc876","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"b00620980a5300b9cca02fce4fe48b8168c982c6da6da23ca385ed1c9e46ca46","projectionSHA256":"c5274c605c40e6460c9bb0156ec1b4fe6dd7c0e12ccf753f155d68518c1a5ab5"},{"detailId":"detail-sha256-2c0542afc75680e1e08271c9e6d52048c30c2097e2c05096b1c95a0e31469d87","name":"MessageReactions","description":"Canonical message reaction totals, own set and scoped mutation availability.","href":"documents/engine-next/?selected=detail-sha256-2c0542afc75680e1e08271c9e6d52048c30c2097e2c05096b1c95a0e31469d87#detail-sha256-2c0542afc75680e1e08271c9e6d52048c30c2097e2c05096b1c95a0e31469d87","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"7085c2efc6bffb2242877febd8053a654e509a0740609670961fb4a3b795b759","projectionSHA256":"eef2641a1121af14ad677a769d79332424c337d4a358556263659d5acadb3df2"},{"detailId":"detail-sha256-160525afb25460c8c91b3ae34c7e98e5f99cee37152cb83a88070efc49162681","name":"MessageReactionsList","description":"Reaction snapshots for a bounded retained conversation page.","href":"documents/engine-next/?selected=detail-sha256-160525afb25460c8c91b3ae34c7e98e5f99cee37152cb83a88070efc49162681#detail-sha256-160525afb25460c8c91b3ae34c7e98e5f99cee37152cb83a88070efc49162681","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"4c5d5a239a88231fc1d1c7ffab8babb60de0f9ce4c7e142eb59bde26ddf62837","projectionSHA256":"f47dc06de8d61340d17d2189b9512010d96cfae2e487f28a5cc79cc78a9de572"},{"detailId":"detail-sha256-7cdf23e4738316da839ef7a5fec0bbc940d1b91a6188369d9ad4192838c2217d","name":"MessageReply","description":"A protocol-identified reply projection. It never infers identity from quoted text. Available means exactly one retained target in the same account and conversation matches the validated protocol reference. Unavailable references may retain a bounded compatibility excerpt, but cannot be navigated.","href":"documents/engine-next/?selected=detail-sha256-7cdf23e4738316da839ef7a5fec0bbc940d1b91a6188369d9ad4192838c2217d#detail-sha256-7cdf23e4738316da839ef7a5fec0bbc940d1b91a6188369d9ad4192838c2217d","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"03f6e343b1cbf884787122a608620a523f99302e6662d8a608cd74b69118eb4f","projectionSHA256":"e0970664e67a5a6a5f84c85bf32d680c587b971c7a3b5ca1206c42cb74bd7ebe"},{"detailId":"detail-sha256-850fa2a23119c6bb1780007d6ff4ab85eba24f8c6c8469c2cb5317247e26a2ea","name":"MessageSearchHit","description":"A matching current or verified earlier content revision with current canonical navigation context. Multiple hits for one message occur only with explicit edit history.","href":"documents/engine-next/?selected=detail-sha256-850fa2a23119c6bb1780007d6ff4ab85eba24f8c6c8469c2cb5317247e26a2ea#detail-sha256-850fa2a23119c6bb1780007d6ff4ab85eba24f8c6c8469c2cb5317247e26a2ea","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"8753658e846157ed031cdd24f50c84628a748e16f45380077aa488ca2ac04cd1","projectionSHA256":"d581d0f23b0916582014866ea2e4b2b95d937eb34496c7b299c22959051c9f09"},{"detailId":"detail-sha256-f7d1333e94dcc162029a824584bdfe5ecfd018d363dc0d2ff1555f138205aa35","name":"MessageSearchPage","description":"Retained message search results. Message text is immediate; metadata indexing coverage is reported separately.","href":"documents/engine-next/?selected=detail-sha256-f7d1333e94dcc162029a824584bdfe5ecfd018d363dc0d2ff1555f138205aa35#detail-sha256-f7d1333e94dcc162029a824584bdfe5ecfd018d363dc0d2ff1555f138205aa35","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"1e871e8a9ce472c600495e09d9f6bcd08884fa978587935dcbef8fdea64648f1","projectionSHA256":"998e25485f2f01640c5b050874f1fb894990e1718546d659776cd67f2fd4a38c"},{"detailId":"detail-sha256-15de344281f6a7eac9f477af5acee1e019569e8c0fd16f68709825759b637cc7","name":"MessageSearchPreview","description":"One indexed shared item from the matching current message. Prefer an item matching the query, then cached artwork.","href":"documents/engine-next/?selected=detail-sha256-15de344281f6a7eac9f477af5acee1e019569e8c0fd16f68709825759b637cc7#detail-sha256-15de344281f6a7eac9f477af5acee1e019569e8c0fd16f68709825759b637cc7","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"2a440ac5d6ab936aa9229007e7309948d915597a5a7d912c0abb538387d96eae","projectionSHA256":"418f7d92802e8428231e10fc3893ec7147caed460702b4b42e1c9ab869e9a3e1"},{"detailId":"detail-sha256-1fa9fc4a79cced705aea8249950709471864ca01cf1d12d0a32602e5696df8c6","name":"MessageSenderProfile","description":"Published profile data for a retained source author. Optional values never imply a verified legal name.","href":"documents/engine-next/?selected=detail-sha256-1fa9fc4a79cced705aea8249950709471864ca01cf1d12d0a32602e5696df8c6#detail-sha256-1fa9fc4a79cced705aea8249950709471864ca01cf1d12d0a32602e5696df8c6","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"78ca2e3a6a69ff2a82db10609418352cfdf7fe57fff6f7f6b19b8a4bd4b622b8","projectionSHA256":"aca18611b17aa844c5d185a6674adb71df4edb32b5d236a7150b895eb6ad9cfd"},{"detailId":"detail-sha256-5ae502e839967fa1131e9cbc311a3875ceb3d7ba234b2f8f35e7e0694eea2223","name":"MessageStar","description":"App-owned source message star, keyed by messageId with its own revision history. Never a message edit.","href":"documents/engine-next/?selected=detail-sha256-5ae502e839967fa1131e9cbc311a3875ceb3d7ba234b2f8f35e7e0694eea2223#detail-sha256-5ae502e839967fa1131e9cbc311a3875ceb3d7ba234b2f8f35e7e0694eea2223","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"78b0d92fa4c6e8968607a874b297882e4ea3be64dc398cc2dea4c05e47f36bae","projectionSHA256":"3ca91bd00c5fc3001e953735816509229a5f020c3fbfeed0de936a01343be4cc"},{"detailId":"detail-sha256-6a9ca8ba917a5e02adf05d20779bb55c23c4e5edc39a8bd167e275999407c452","name":"MessageStarPage","description":"Bounded states for the requested source message UUIDs, including untouched initial state.","href":"documents/engine-next/?selected=detail-sha256-6a9ca8ba917a5e02adf05d20779bb55c23c4e5edc39a8bd167e275999407c452#detail-sha256-6a9ca8ba917a5e02adf05d20779bb55c23c4e5edc39a8bd167e275999407c452","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"da6cac099ed0b569f3290344e6c8cba3d885387bb18dc0446b18bfb27b18d52c","projectionSHA256":"f87ddba71b19db6aba237d13d5a2456a114bc6d1f45d2debadc986bd71a55a3d"},{"detailId":"detail-sha256-f352f75ce21122d4271b3590314800f8c6f7e2d3b525140fea52963c94338de0","name":"NullableReactionRevision","description":"Observed reaction revision UUID, or null before the first set.","href":"documents/engine-next/?selected=detail-sha256-f352f75ce21122d4271b3590314800f8c6f7e2d3b525140fea52963c94338de0#detail-sha256-f352f75ce21122d4271b3590314800f8c6f7e2d3b525140fea52963c94338de0","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"23aa09cb7ebda462982e315e63ebb2e019dc01343427e31628aade4ae42c1e21","projectionSHA256":"4e244862a644970c23edea4234221ca7f9b624cb83dc9aa5ad9352ccc943725d"},{"detailId":"detail-sha256-c5cb9dad357d092d76b887b9041bd284ca34aef4cb7da565147955c5b454f5ee","name":"NullableRevisionID","description":"Canonical UUIDv7 of app-owned state; null means no revision has been created.","href":"documents/engine-next/?selected=detail-sha256-c5cb9dad357d092d76b887b9041bd284ca34aef4cb7da565147955c5b454f5ee#detail-sha256-c5cb9dad357d092d76b887b9041bd284ca34aef4cb7da565147955c5b454f5ee","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"e8f042919cda3d16b0dcb7b7dd8e594d90279ef6520d69ffc4249e44675ad132","projectionSHA256":"5398df703589f6477ffd9e692f57815ad31c91b1c58a804d3be96d7885fe1e0f"},{"detailId":"detail-sha256-62d40c7b1bb12a2ac36d46a308001daf951e14a31d4a39b280024e49a746d65a","name":"OpenConversation","description":"Open or find a direct conversation in a registered account.","href":"documents/engine-next/?selected=detail-sha256-62d40c7b1bb12a2ac36d46a308001daf951e14a31d4a39b280024e49a746d65a#detail-sha256-62d40c7b1bb12a2ac36d46a308001daf951e14a31d4a39b280024e49a746d65a","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"aa5283c2b57d8afc8ca20baf21a5a89b49b647b8838444186a61f3fec6ee849d","projectionSHA256":"508f764e2e845a0688ee6311791a615b0140a71be19048999cfac8e2c7305cf4"},{"detailId":"detail-sha256-fe8befa42bd80a77db2a2222fab044d935f978c987274179a6c3227438ef7411","name":"OpenRoom","description":"Explicit request to enter an existing room or create a new room at the given address.","href":"documents/engine-next/?selected=detail-sha256-fe8befa42bd80a77db2a2222fab044d935f978c987274179a6c3227438ef7411#detail-sha256-fe8befa42bd80a77db2a2222fab044d935f978c987274179a6c3227438ef7411","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"335fe00ef68c8623f5ead9d253869268e97c840eb61684346e937ade966f012b","projectionSHA256":"c73a16993c72f5b21f20922b5a383bfcbf0756577ce37ab8f6b896977e513702"},{"detailId":"detail-sha256-f56aff932ae7b3d3c5e57cd3dbb901432298ebf9f8814f00c9d95bf90ef6852b","name":"Operation","description":"Durable receipt used to reconcile repeated mutations.","href":"documents/engine-next/?selected=detail-sha256-f56aff932ae7b3d3c5e57cd3dbb901432298ebf9f8814f00c9d95bf90ef6852b#detail-sha256-f56aff932ae7b3d3c5e57cd3dbb901432298ebf9f8814f00c9d95bf90ef6852b","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"a06d1dfcb1b54cdddaa2a7e5b0ba53485430536730f2fa882134ffa060aeb702","projectionSHA256":"bec5c208726f2bdfaadca46f75d8db66556db7bcd512b7b0d0143a6aa3b58ce1"},{"detailId":"detail-sha256-15865a8497ac01fc17c6b929aa8d2ec8af34f5aeb0b5dc147397b143029adf17","name":"OutgoingComposition","description":"Complete authored content in the same form used at initial acceptance. Omit an optional field to clear it when replacing the composition.","href":"documents/engine-next/?selected=detail-sha256-15865a8497ac01fc17c6b929aa8d2ec8af34f5aeb0b5dc147397b143029adf17#detail-sha256-15865a8497ac01fc17c6b929aa8d2ec8af34f5aeb0b5dc147397b143029adf17","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"732acadafdfb7cfc6838429acb21f770d98edf4636697a47d61a34a28754ac40","projectionSHA256":"2b472f1dc47c17ef0a357eaba366df6c5ff7ba98f5a6e14bfed5205cea659a5a"},{"detailId":"detail-sha256-07ee5826fab3a1969c07c4580ff6b5e544827df9c37fe2f18eaf5c0466926eda","name":"PresenceObservation","description":"Observed presence from authorized traffic, without active probes or inferred offline state.","href":"documents/engine-next/?selected=detail-sha256-07ee5826fab3a1969c07c4580ff6b5e544827df9c37fe2f18eaf5c0466926eda#detail-sha256-07ee5826fab3a1969c07c4580ff6b5e544827df9c37fe2f18eaf5c0466926eda","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"1938f679cbcbff8737e780ebcc87edc0262c27018c80039ff29945b706ec0070","projectionSHA256":"ed94d7ae746252be33c4aac5ae436c7a780e06dde2abcd2ffdd8154a322f5694"},{"detailId":"detail-sha256-bb0bb32b1e6281b6fc773ef8a735907a35f4e59d668ffd6e1b7be69b18607d92","name":"PreviewPage","description":"At most three preview references for each selected retained message, up to three hundred items.","href":"documents/engine-next/?selected=detail-sha256-bb0bb32b1e6281b6fc773ef8a735907a35f4e59d668ffd6e1b7be69b18607d92#detail-sha256-bb0bb32b1e6281b6fc773ef8a735907a35f4e59d668ffd6e1b7be69b18607d92","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"15bf65206b162c26f334f83ee4e149bcabb23fc096d16f09f7ce02ead65fccb1","projectionSHA256":"c6a8679312055d1aeb82f680348959d9152df9163089837e560f0842b94378b1"},{"detailId":"detail-sha256-a770c3dc125cce03ec023c3f8d9e9bbc8734f0a1e74a3ff7c65383f90259e7eb","name":"Problem","description":"RFC 9457 Problem Details served as application/problem+json. The type URI identifies the problem. The code extension is a stable short identifier for display and localization. The Link response header with rel=\"help\" provides guidance for known problem types. The body includes documentation when the request applies the oie-problem-documentation preference. Responses exclude raw storage errors and credentials.","href":"documents/engine-next/?selected=detail-sha256-a770c3dc125cce03ec023c3f8d9e9bbc8734f0a1e74a3ff7c65383f90259e7eb#detail-sha256-a770c3dc125cce03ec023c3f8d9e9bbc8734f0a1e74a3ff7c65383f90259e7eb","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"410c9a673248c507727e9bd53bdb98282297b7e0843f6f65a13c1cc5bd7ee182","projectionSHA256":"3673e772e3d04542a9cbf0a79f4690bc1a040f7cc2ce042809036a21262d70bb"},{"detailId":"detail-sha256-df2c02e277abb3db7f44925105deac64048a83d68520d296141fc9ed855f15b9","name":"ReactionActor","description":"One verified actor's latest nonempty set, with a retained display name and optional cached avatar. Identity is scoped to the snapshot account and conversation. Reading never discovers or links identities.","href":"documents/engine-next/?selected=detail-sha256-df2c02e277abb3db7f44925105deac64048a83d68520d296141fc9ed855f15b9#detail-sha256-df2c02e277abb3db7f44925105deac64048a83d68520d296141fc9ed855f15b9","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"6becb70aa497912c6ce3e8d411f4677f2152f312400fe7762cc6f4c461c8cdb7","projectionSHA256":"274c7198bd2d4ac749e85e1d42f4558ab25502d4b1fc2e24ac24ae6a33ebd15b"},{"detailId":"detail-sha256-7f31b73fd58316adb964c5418d172a69a54e56952754af00b922f8456b0ccc34","name":"ReactionActorEmojiSet","description":"A verified actor's latest nonempty set of distinct emoji graphemes.","href":"documents/engine-next/?selected=detail-sha256-7f31b73fd58316adb964c5418d172a69a54e56952754af00b922f8456b0ccc34#detail-sha256-7f31b73fd58316adb964c5418d172a69a54e56952754af00b922f8456b0ccc34","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"947519dda3154350d006036634107cd46ce418f78019f17948f9b7ade80998b3","projectionSHA256":"f01f9080ab0ab1d6b3ad7bd92b0dcde21974c0734dac7361d5d8c1f82ba4b0ff"},{"detailId":"detail-sha256-6379edefc6072ac779c2f3f9f3d02d127c8444b18b84925aa4837b9cd6f0644a","name":"ReactionEmojiSet","description":"Complete desired set of at most eight distinct single Unicode emoji graphemes. Empty clears the set.","href":"documents/engine-next/?selected=detail-sha256-6379edefc6072ac779c2f3f9f3d02d127c8444b18b84925aa4837b9cd6f0644a#detail-sha256-6379edefc6072ac779c2f3f9f3d02d127c8444b18b84925aa4837b9cd6f0644a","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"5e35a0d168a9901b0148e0a11c0fd77f94e36c1682fb3f5d24f5e785bba3d8a4","projectionSHA256":"783f96328f38f70aa9cd055f0696ad7f184ada52e0b7b9c34df6b7eb90646fe2"},{"detailId":"detail-sha256-05335f885141dd86f55627ebd6de927c82204d32628fdd92abeb0e97d72cb173","name":"ReactionItem","description":"One emoji and its count across distinct verified actors.","href":"documents/engine-next/?selected=detail-sha256-05335f885141dd86f55627ebd6de927c82204d32628fdd92abeb0e97d72cb173#detail-sha256-05335f885141dd86f55627ebd6de927c82204d32628fdd92abeb0e97d72cb173","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"833c3b2ad4a72fe53feafa3ef9c807c1db1ad4d28681596b4ccc105476778a6e","projectionSHA256":"0eba6c900ba27fa09a09267b8fe9dcf07390064fc82b731608800526ac326976"},{"detailId":"detail-sha256-5b971e7f169e66dce21c17bb71e612644c8e4ac6d0c91f796e9f19e0b7a909d9","name":"RegisterAccount","description":"Account metadata registration, without protocol credentials.","href":"documents/engine-next/?selected=detail-sha256-5b971e7f169e66dce21c17bb71e612644c8e4ac6d0c91f796e9f19e0b7a909d9#detail-sha256-5b971e7f169e66dce21c17bb71e612644c8e4ac6d0c91f796e9f19e0b7a909d9","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"db555d7223b4b222516fccf28e09bd76eaa4dd9122bad60cc2389e113b280c9f","projectionSHA256":"2d64d9a9dccbbad54b3b0bfb9e6339033896e3e322ba39f7ed64abf33dc62a10"},{"detailId":"detail-sha256-48fe1f8819127e233bdd1ac4ac75bdea6b21c62020ff4a6a59ea8d34d734cfcd","name":"ReplyExcerptSHA256","description":"SHA-256 of the exact UTF-8 quote excerpt, at most the first 512 Unicode code points of the displayed source body. Optional on reviewed reply mutations and requires expectedReplyRevisionId. The engine preserves it in the original acceptance when supplied.","href":"documents/engine-next/?selected=detail-sha256-48fe1f8819127e233bdd1ac4ac75bdea6b21c62020ff4a6a59ea8d34d734cfcd#detail-sha256-48fe1f8819127e233bdd1ac4ac75bdea6b21c62020ff4a6a59ea8d34d734cfcd","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"1574790741c8cd690c552a1c4d0bdab2aba0df96150469772974fc9e93d78160","projectionSHA256":"6fe042dd437b703b70a10edc7d9ea24bb387a1c32ce3c1537b84e0271ce2ef55"},{"detailId":"detail-sha256-c00f228244f96a14c6f63a63b1436400ff85a84e3cd0751b356a197842ab3776","name":"RoomArchive","description":"Retained recovery progress for one room. Coverage describes archive pages, not isolated search hits.","href":"documents/engine-next/?selected=detail-sha256-c00f228244f96a14c6f63a63b1436400ff85a84e3cd0751b356a197842ab3776#detail-sha256-c00f228244f96a14c6f63a63b1436400ff85a84e3cd0751b356a197842ab3776","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"d161e5ad52c07dc5e7234a88f29ece63aacb730c1832ff1e7b30b1d0641094bb","projectionSHA256":"c96719a815ae1daef079f071a02a3a2a2fa533ee400c7d19da9a9d90725ea786"},{"detailId":"detail-sha256-81c21e805a85f5096be3b91ecfd75f7fd7ad79bc483a00083dd1690405939098","name":"RoomArchiveMode","description":"Automatic recovery policy for older room history.","href":"documents/engine-next/?selected=detail-sha256-81c21e805a85f5096be3b91ecfd75f7fd7ad79bc483a00083dd1690405939098#detail-sha256-81c21e805a85f5096be3b91ecfd75f7fd7ad79bc483a00083dd1690405939098","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"06d05b83f7cc17494500bb705372850adfa76bce6da381222a128a24ab36314e","projectionSHA256":"b32d5a02d3d0eb9449c32a6d558e54a513ef1b513711bad931aedf4275ba6a98"},{"detailId":"detail-sha256-459ca3c0a4c75cc65bed806f8f23fab92c7af9e022d14544abab4d8f22594c2a","name":"RoomArchiveRequest","description":"One user-initiated room archive action.","href":"documents/engine-next/?selected=detail-sha256-459ca3c0a4c75cc65bed806f8f23fab92c7af9e022d14544abab4d8f22594c2a#detail-sha256-459ca3c0a4c75cc65bed806f8f23fab92c7af9e022d14544abab4d8f22594c2a","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"114546d38398285f5ee32f1d5a1ac71ad5a1366f1e1054c5384a8fbc5b6db068","projectionSHA256":"57f23a099d9d4b2f906f32ae59277ef5bc1c6dc304ddfe26c83dc63025d362f6"},{"detailId":"detail-sha256-c3100484c643206e0728d68ee5831111ab73b9c238244377d7e5bd4fa9855596","name":"RoomArchiveResult","description":"Outcome of the requested archive operation.","href":"documents/engine-next/?selected=detail-sha256-c3100484c643206e0728d68ee5831111ab73b9c238244377d7e5bd4fa9855596#detail-sha256-c3100484c643206e0728d68ee5831111ab73b9c238244377d7e5bd4fa9855596","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"73d68703a4aa67580a36dbcd21d4ca3345d52e9f845111c160264b45d5c418f1","projectionSHA256":"caf0d258b198ad9cda7583d05af5cec406a2b607a3308849a8142ebfd11104d6"},{"detailId":"detail-sha256-a5cd933439dbe9143ee5b9cc42b74ba987d5dee27a75070684fc9bc48047f6f8","name":"RoomPreview","description":"Published room information available to the selected XMPP account before entry.","href":"documents/engine-next/?selected=detail-sha256-a5cd933439dbe9143ee5b9cc42b74ba987d5dee27a75070684fc9bc48047f6f8#detail-sha256-a5cd933439dbe9143ee5b9cc42b74ba987d5dee27a75070684fc9bc48047f6f8","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"0db524b6a20145c2e5176409cbd06e32655781a27c55ea845f891e75b6cdf782","projectionSHA256":"e4655dc0c78bdc6989f5bf90a3060239532775bdf5a71e07320b3d25ae1e6b21"},{"detailId":"detail-sha256-ac6b27986e6343ac0f1e4ef76332ff4803b65e9deb20503d68c54e801a31369a","name":"RoomSession","description":"Own engine's room intent and observed session, distinct from account connectivity and public occupant discovery.","href":"documents/engine-next/?selected=detail-sha256-ac6b27986e6343ac0f1e4ef76332ff4803b65e9deb20503d68c54e801a31369a#detail-sha256-ac6b27986e6343ac0f1e4ef76332ff4803b65e9deb20503d68c54e801a31369a","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"b0a0020eedc2bb5fc87234c3c3ba18d02c47abe6b7efe8e713031a7444c16ca0","projectionSHA256":"999968133cb6c8b8420f7420711afee1b5276695d0d801618c8fe6001d11110b"},{"detailId":"detail-sha256-c3daa8cf0c9547fc39a839e88cebe5c6156d33b8e979b23f39a28aa600096afe","name":"ScheduledMessageItem","description":"The current queued message, including scheduledAt and composition, and its destination.","href":"documents/engine-next/?selected=detail-sha256-c3daa8cf0c9547fc39a839e88cebe5c6156d33b8e979b23f39a28aa600096afe#detail-sha256-c3daa8cf0c9547fc39a839e88cebe5c6156d33b8e979b23f39a28aa600096afe","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"d50b8069140432bddbbd24caca45dd13e99f5aef07ba4ea24070d85cd20ce4ab","projectionSHA256":"a1c062ba3278534d1efee991ccca3596eb58b568dcb2b292324b5c5c3145fe74"},{"detailId":"detail-sha256-22cf5f861bd7806e119eccb803fdc3d487c96602516bc3c798e8188bc9943107","name":"ScheduledMessagePage","description":"Scheduled messages and their destinations at the selected owning engine.","href":"documents/engine-next/?selected=detail-sha256-22cf5f861bd7806e119eccb803fdc3d487c96602516bc3c798e8188bc9943107#detail-sha256-22cf5f861bd7806e119eccb803fdc3d487c96602516bc3c798e8188bc9943107","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"c7991fb8ef94caa4ff0fe6ab537aedefe6e617e077b1a67a4478aaf32321b2bc","projectionSHA256":"a1cdd2d814ba9cab7d71820e42db599acd5446c53103b35e23a11e2d5503b658"},{"detailId":"detail-sha256-c33c9940fd766005ece484cdf0824edf6a7a547a16138cb141a9ac1f732de626","name":"ScheduledSendInstant","description":"An RFC 3339 instant strictly in the future when the owning engine first accepts it. Supply an explicit offset or Z, with up to nine fractional second digits. The engine normalizes to UTC. Equivalent offsets identify the same instant for idempotency.","href":"documents/engine-next/?selected=detail-sha256-c33c9940fd766005ece484cdf0824edf6a7a547a16138cb141a9ac1f732de626#detail-sha256-c33c9940fd766005ece484cdf0824edf6a7a547a16138cb141a9ac1f732de626","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"2ab0866e0be7cc701a3748a130ac4deade63b53f35f1331cc391fa9032e6678e","projectionSHA256":"a6b4b2eaf3c7dc7e5c56c39bf3999aff78aa403649c177b5ffcf00bf0b064b55"},{"detailId":"detail-sha256-320a6b3bf0a5f7eafb0214b1272351edde73f3ba8acae4f3240873094a957e58","name":"SendMessage","description":"Authored text and optional reply, mentions and ordered staged attachments. Links are part of the authored text. Reply targets use canonical UUIDs scoped to the destination. The engine freezes reply and mention references before enqueueing. The resulting Message.originalText follows the existing retained body format, including any reply compatibility text. Message.composition contains the editable input for pending sends.","href":"documents/engine-next/?selected=detail-sha256-320a6b3bf0a5f7eafb0214b1272351edde73f3ba8acae4f3240873094a957e58#detail-sha256-320a6b3bf0a5f7eafb0214b1272351edde73f3ba8acae4f3240873094a957e58","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"199b9e7e60efc03dfc9414d7e79010e19f29f7477bf8c90a9c2f9f40b734003d","projectionSHA256":"92e6b6b4c792cd45037d50f8b56e185051fc78f872fd2d44be7c49d240502351"},{"detailId":"detail-sha256-b67efb525a4d7c21b00e9b16f1f19c29369c55bef3580e319e0dc7f4a5b1c6ba","name":"SendScheduledMessageNow","description":"Revision precondition for making a scheduled message eligible now.","href":"documents/engine-next/?selected=detail-sha256-b67efb525a4d7c21b00e9b16f1f19c29369c55bef3580e319e0dc7f4a5b1c6ba#detail-sha256-b67efb525a4d7c21b00e9b16f1f19c29369c55bef3580e319e0dc7f4a5b1c6ba","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"d2b9f0c31a5f285d60787ce51f21490d9c56ba522cbcfb7716fbb0bc86ee3f9e","projectionSHA256":"7a1b377edd034ba2f7a03b70c2f59d94073c257cebd3490e3c7c76672354b05c"},{"detailId":"detail-sha256-95c15a2022f4acb1f8090e6ca45f5dbe1a46b99e7c868f225273c4a4e9a0de09","name":"Sender","description":"Engine-local source identity. For recovered room messages, this is the room-scoped source with an observed speaker nickname, not a verified personal identity.","href":"documents/engine-next/?selected=detail-sha256-95c15a2022f4acb1f8090e6ca45f5dbe1a46b99e7c868f225273c4a4e9a0de09#detail-sha256-95c15a2022f4acb1f8090e6ca45f5dbe1a46b99e7c868f225273c4a4e9a0de09","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"cc842a849933427c81eaddeba26cd805d5be85501888d190c52ff445dfb7cf5e","projectionSHA256":"588fe451b8d9131f326bd458def3801e09ba452dae00b098dd40d4629ba75b5b"},{"detailId":"detail-sha256-46022d9a87b41cd6697f6c91315b31b2dc28f18cc02ad043c24b1daed643cf27","name":"SetMessageReactions","description":"Complete desired own reaction set guarded by the observed own revision.","href":"documents/engine-next/?selected=detail-sha256-46022d9a87b41cd6697f6c91315b31b2dc28f18cc02ad043c24b1daed643cf27#detail-sha256-46022d9a87b41cd6697f6c91315b31b2dc28f18cc02ad043c24b1daed643cf27","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"ee8a1f2285f09c4f464c355b83bfcaca2b9354e8ad0ae786775e16d7e6a54664","projectionSHA256":"57dc8e83081167d45dd42550a63433aaab7f1866eae25cef96f8fe8cb5d337cb"},{"detailId":"detail-sha256-ea326b1fb3d7700da4d219af435016292502592353bdb26ddb3571e11bc0e897","name":"SetMessageStar","description":"Desired star state and mandatory optimistic precondition; use a new operation UUID for a new decision.","href":"documents/engine-next/?selected=detail-sha256-ea326b1fb3d7700da4d219af435016292502592353bdb26ddb3571e11bc0e897#detail-sha256-ea326b1fb3d7700da4d219af435016292502592353bdb26ddb3571e11bc0e897","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"d20a497e09b65c96ca44fdbb8929983e3fdc24d4c5b6946777d00b174198f44b","projectionSHA256":"32ca6ce13463362aa5d730a2bad87cc9cbf1eb8a67e401264732266d4edfec22"},{"detailId":"detail-sha256-f2f5578c0fa18138b2226f47a77a02ad8569c86af9af9b7af20ea9113ba2f4f8","name":"SetRoomArchiveMode","description":"Replacement room recovery preference.","href":"documents/engine-next/?selected=detail-sha256-f2f5578c0fa18138b2226f47a77a02ad8569c86af9af9b7af20ea9113ba2f4f8#detail-sha256-f2f5578c0fa18138b2226f47a77a02ad8569c86af9af9b7af20ea9113ba2f4f8","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"a06f2e3561878abda728defb6c955a43b7d088d4c87f7767333338ece82c1ed0","projectionSHA256":"a818edd43ddc47caa4d144525946cd870cc16346555a2e6c1e55b9e4af0ca83b"},{"detailId":"detail-sha256-eb4ae52e34a80754e5cb54c0d24f661f2a148d3e0f1fd038f534233b08d394c9","name":"SharedContentIndexing","description":"Local source-message indexing progress, scoped by account/conversation but independent of tab/search.","href":"documents/engine-next/?selected=detail-sha256-eb4ae52e34a80754e5cb54c0d24f661f2a148d3e0f1fd038f534233b08d394c9#detail-sha256-eb4ae52e34a80754e5cb54c0d24f661f2a148d3e0f1fd038f534233b08d394c9","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"a30339060fe13c0f06fa265f80f8a8ed557a8cfa0337da24f65759a4211f5af3","projectionSHA256":"82b95c27c80fa164f5883972926db869b8d4a97589002400493c23d57266ee95"},{"detailId":"detail-sha256-9872e37c21e3ce03e4cd990cc349d351910a5bb3623ca0e65d1b318ef07b37fb","name":"SharedContentItem","description":"One shared URL reference with its exact retained source message and current owning labels.","href":"documents/engine-next/?selected=detail-sha256-9872e37c21e3ce03e4cd990cc349d351910a5bb3623ca0e65d1b318ef07b37fb#detail-sha256-9872e37c21e3ce03e4cd990cc349d351910a5bb3623ca0e65d1b318ef07b37fb","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"a84d8314e4af848797268a6121c8b0d47a030a745086660e4397892f5a2a7427","projectionSHA256":"d5d2317aed9352cdfefdc0b8892ac76d55c96a37a0fb3ff554ef23a26280c309"},{"detailId":"detail-sha256-5e0f8826d1b02f5a38e76a1707d0e25a2f6da851350bfc8739ca0b2129590a37","name":"SharedContentPage","description":"Bounded shared-content page. Image previews and originals retain their independent hashes and states.","href":"documents/engine-next/?selected=detail-sha256-5e0f8826d1b02f5a38e76a1707d0e25a2f6da851350bfc8739ca0b2129590a37#detail-sha256-5e0f8826d1b02f5a38e76a1707d0e25a2f6da851350bfc8739ca0b2129590a37","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"12e16c3665e6c01a70491e5a9fee2ff90def26759711cd025ff7860d0b95d310","projectionSHA256":"fec6a05121023285ec0e17acb28c243f5e3144cab0ec798bd1032a688bbae465"},{"detailId":"detail-sha256-3f5423b64d02ddc9ee626155a3924869fbeaabcd8ff6d3e5b3959772de936fdd","name":"StagedAttachment","description":"Immutable metadata for locally staged attachment bytes.","href":"documents/engine-next/?selected=detail-sha256-3f5423b64d02ddc9ee626155a3924869fbeaabcd8ff6d3e5b3959772de936fdd#detail-sha256-3f5423b64d02ddc9ee626155a3924869fbeaabcd8ff6d3e5b3959772de936fdd","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"79224f3e7affb09f8615cb93babf840eecd1fffb923da400613920e2971e9a57","projectionSHA256":"17f25a2fe6fd6a01732f765bcc607c8e307b3942f25ed1f3123db82d2de08071"},{"detailId":"detail-sha256-91e1d6d1ef0c9deb0ced1db824f7649f04d8efd568fc5147085b2fbd2051b0f1","name":"StagedAttachmentIDs","description":"Ordered unique IDs of available staged files in the same destination scope.","href":"documents/engine-next/?selected=detail-sha256-91e1d6d1ef0c9deb0ced1db824f7649f04d8efd568fc5147085b2fbd2051b0f1#detail-sha256-91e1d6d1ef0c9deb0ced1db824f7649f04d8efd568fc5147085b2fbd2051b0f1","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"8f0118d2962dd16e30d093dc95cb048309b538cee75c9ec2e376e86c7fb73b2c","projectionSHA256":"9ea4b4a40a85a9f5f79420f5974b6407b71b99f31ea7211b3e1f82c70d8b7cef"},{"detailId":"detail-sha256-40d018cd8932bfd3a2176a164725c0c9d6a9ede68a8a44e32dc221c835daeec6","name":"StarredMessage","description":"Latest source message and conversation projections with their independent star state.","href":"documents/engine-next/?selected=detail-sha256-40d018cd8932bfd3a2176a164725c0c9d6a9ede68a8a44e32dc221c835daeec6#detail-sha256-40d018cd8932bfd3a2176a164725c0c9d6a9ede68a8a44e32dc221c835daeec6","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"d442ab8f3eebc98d3fcf657f4b3cba91d19ff9b6d76e281f8e44528756d93213","projectionSHA256":"86072ee36c5e9cfc7dbb2136eac2b07e6151f29b8f98d2e25ded101b483a2ffb"},{"detailId":"detail-sha256-d7267ac433b22192c506b18ee9c3b905d05b715bc4d9164544e52c0cdf07258f","name":"StarredMessagePage","description":"Chronologically paginated current starred messages. Newly starred records can appear on earlier pages.","href":"documents/engine-next/?selected=detail-sha256-d7267ac433b22192c506b18ee9c3b905d05b715bc4d9164544e52c0cdf07258f#detail-sha256-d7267ac433b22192c506b18ee9c3b905d05b715bc4d9164544e52c0cdf07258f","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"da4a773681c398994a78214d433f243266e7ff6e45a65f8a62a39bd24a2dd6e5","projectionSHA256":"2929a466ce65aaef49915bcb487464e0020efefac56728da9704cbc57e08e246"},{"detailId":"detail-sha256-12537e78534ad9d5303a83ebcf17e189dc265ddd2afeb7ec544b78c175be7638","name":"SupportState","description":"App unsupported means not implemented. Protocol supported means defined by that protocol, independently of Oie implementation. Server supported means observed advertised evidence. not_advertised means the relevant successful query omitted that feature, not a definitive operational denial. scope_dependent needs peer or room evidence. Unknown is never treated as false.","href":"documents/engine-next/?selected=detail-sha256-12537e78534ad9d5303a83ebcf17e189dc265ddd2afeb7ec544b78c175be7638#detail-sha256-12537e78534ad9d5303a83ebcf17e189dc265ddd2afeb7ec544b78c175be7638","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"95bd4a582835d71c53a3b99b5387b880122b80d6e65f362e5d127314a42928c3","projectionSHA256":"6d930da80973c0ad2cf0658631f0d082545c5959caaf1dce9b9f439758f65a95"},{"detailId":"detail-sha256-70eb9a4bff858c52a9eb6ea70591a2ec9ee6d0cfe960603466f574b61716893d","name":"UpdateConversationPreferences","description":"Field-isolated archive, favorite or direct message request acceptance with a current conversation revision precondition.","href":"documents/engine-next/?selected=detail-sha256-70eb9a4bff858c52a9eb6ea70591a2ec9ee6d0cfe960603466f574b61716893d#detail-sha256-70eb9a4bff858c52a9eb6ea70591a2ec9ee6d0cfe960603466f574b61716893d","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"18f41516e61ae2befaa4edf49711643711ef64c9a65a4edb25044964b70d092d","projectionSHA256":"802293f68311b402ef4f29e23ed64711973b23edfeced71561461f5f90f6127a"},{"detailId":"detail-sha256-441d8f76a7bdd86c82520452e6709cfbcd5e912d4d851e7ebe8bd678fc8a2bd9","name":"UpdatePendingMessage","description":"Supply composition, scheduledAt or both. Each omitted top-level field retains its current value. Null is invalid. Replacing the composition creates a pending revision without a sent-message correction. The frozen reply is preserved when the target is unchanged and no reply precondition is supplied. Use sendScheduledMessageNow to make an existing schedule eligible now.","href":"documents/engine-next/?selected=detail-sha256-441d8f76a7bdd86c82520452e6709cfbcd5e912d4d851e7ebe8bd678fc8a2bd9#detail-sha256-441d8f76a7bdd86c82520452e6709cfbcd5e912d4d851e7ebe8bd678fc8a2bd9","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"e9cd40b29d8fd9546af6967a5608eee8234d7f0c2f4c95fc511730e35e841844","projectionSHA256":"155285e388924ef8a5d5587c83557b16fef0006430748a9ca27c8fbc074ae0fe"},{"detailId":"detail-sha256-285a193a681ef78480b45e4c789ca94b7736dc903cd439c32c57ab9eaf941539","name":"VideoThumbnail","description":"Cached frame metadata for one canonical retained video reference. A ready imageHash is a normalized static thumbnail; original video bytes are never retained by this operation.","href":"documents/engine-next/?selected=detail-sha256-285a193a681ef78480b45e4c789ca94b7736dc903cd439c32c57ab9eaf941539#detail-sha256-285a193a681ef78480b45e4c789ca94b7736dc903cd439c32c57ab9eaf941539","detailChild":"details/engine-next/c725565bb1bf1341d6b67eb973eaff86264dc299aa3518b6a43b51e273ddf990.json","canonicalSHA256":"a274e60737be8c5b001c7737a53529f493b83b458da49d32133a231c2381da14","projectionSHA256":"78ae1a0d74c687ee6019296e6a44a8e69f5f5e721f7049f15f9b4f783e7fc1a2"}]}]}