| id | getId() | number | Unique message ID |
| conversationId | getConversationId() | string | ID of the conversation this message belongs to |
| parentMessageId | getParentMessageId() | number | ID of the parent message (for threaded messages) |
| muid | getMuid() | string | Client-generated unique message ID |
| sender | getSender() | User | Sender of the message |
| receiver | getReceiver() | User | Group | Receiver of the message |
| receiverId | getReceiverId() | string | UID/GUID of the receiver |
| type | getType() | string | Message type (e.g., "text", "image", "file", "custom") |
| receiverType | getReceiverType() | string | Receiver type ("user" or "group") |
| category | getCategory() | MessageCategory | Message category (e.g., "message", "action", "call", "custom") |
| sentAt | getSentAt() | number | Timestamp when the message was sent (epoch seconds) |
| deliveredAt | getDeliveredAt() | number | Timestamp when the message was delivered |
| readAt | getReadAt() | number | Timestamp when the message was read |
| deliveredToMeAt | getDeliveredToMeAt() | number | Timestamp when the message was delivered to the logged-in user |
| readByMeAt | getReadByMeAt() | number | Timestamp when the message was read by the logged-in user |
| editedAt | getEditedAt() | number | Timestamp when the message was edited |
| editedBy | getEditedBy() | string | UID of the user who edited the message |
| deletedAt | getDeletedAt() | number | Timestamp when the message was deleted |
| deletedBy | getDeletedBy() | string | UID of the user who deleted the message |
| replyCount | getReplyCount() | number | Number of replies to this message |
| unreadRepliesCount | getUnreadRepliesCount() | number | Number of unread replies |
| data | getData() | Object | Raw data payload of the message |
| metadata | getMetadata() | Object | Custom metadata attached to the message |
| rawMessage | getRawMessage() | Object | Raw JSON of the message as received from the server |