Message Standard
A universal messaging format. Works for chat, email-like threads, group conversations, and channels.
Message
{
$standard: 'message',
$version: 1,
$type: 'message',
$id: 'msg-2026-0329-001',
$from: {
$name: 'Markus',
$url: 'https://hub.example.com/users/markus',
$avatar: 'https://hub.example.com/users/markus/avatar.webp'
},
$to: [
{ $name: 'Anna', $url: 'https://hub.example.com/users/anna' }
],
$body: 'Did you see the new filesystem standard?',
$format: 'text',
$created: '2026-03-29 11:05:30',
$thread: 'thread-2026-0328-042',
$attachments: [
{
$url: 'https://hub.example.com/files/screenshot.webp',
$mime: 'image/webp',
$size: 48200,
$name: 'screenshot.webp'
}
]
}
Thread
A conversation thread grouping related messages.
{
$standard: 'message',
$version: 1,
$type: 'thread',
$id: 'thread-2026-0328-042',
$subject: 'WorldAPI Standards Discussion',
$created: '2026-03-28 09:00:00',
$updated: '2026-03-29 11:05:30',
$participants: [
{ $name: 'Markus', $url: 'https://hub.example.com/users/markus' },
{ $name: 'Anna', $url: 'https://hub.example.com/users/anna' }
],
$messages: [ ... ],
$count: 14
}
Channel
A named group space — like a chat room or mailing list.
{
$standard: 'message',
$version: 1,
$type: 'channel',
$id: 'channel-dev',
$name: 'Development',
$description: 'General development discussion',
$created: '2026-01-01 00:00:00',
$owner: {
$name: 'Markus',
$url: 'https://hub.example.com/users/markus'
},
$members: [
{ $name: 'Markus', $role: 'admin' },
{ $name: 'Anna', $role: 'member' },
{ $name: 'Tom', $role: 'member' }
],
$threads: [ ... ],
$permissions: {
$public: false,
$join: 'invite'
}
}
Status & Receipts
Optional delivery and read status per message.
{
$standard: 'message',
$version: 1,
$type: 'status',
$message: 'msg-2026-0329-001',
$delivered: '2026-03-29 11:05:31',
$read: '2026-03-29 11:06:02',
$user: { $name: 'Anna' }
}
Object Types
| $type | Use case |
|---|---|
| message | A single message |
| thread | A conversation grouping messages |
| channel | A named group space |
| status | Delivery/read receipt for a message |
Standard Properties
| Property | Type | Required | Description |
|---|---|---|---|
| $standard | string | yes | Always 'message' |
| $version | number | yes | Standard version |
| $type | string | yes | message, thread, channel, or status |
| $id | string | yes | Unique identifier |
| $from | object | yes* | Sender with $name, $url, $avatar |
| $to | array | no | Recipients |
| $body | string | yes* | Message content |
| $format | string | no | text (default) or html |
| $created | string | yes | UTC datetime |
| $updated | string | no | UTC datetime if edited |
| $thread | string | no | Thread ID this message belongs to |
| $reply_to | string | no | Message ID being replied to |
| $attachments | array | no | Attached files |
| $subject | string | no | Thread or channel subject |
| $participants | array | no | Thread participants |
| $members | array | no | Channel members with $role |
| $messages | array | no | Messages in thread |
| $threads | array | no | Threads in channel |
| $count | number | no | Total message/thread count |
| $permissions | object | no | Access control for channels |
* Required depends on $type.