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

$typeUse case
messageA single message
threadA conversation grouping messages
channelA named group space
statusDelivery/read receipt for a message

Standard Properties

PropertyTypeRequiredDescription
$standardstringyesAlways 'message'
$versionnumberyesStandard version
$typestringyesmessage, thread, channel, or status
$idstringyesUnique identifier
$fromobjectyes*Sender with $name, $url, $avatar
$toarraynoRecipients
$bodystringyes*Message content
$formatstringnotext (default) or html
$createdstringyesUTC datetime
$updatedstringnoUTC datetime if edited
$threadstringnoThread ID this message belongs to
$reply_tostringnoMessage ID being replied to
$attachmentsarraynoAttached files
$subjectstringnoThread or channel subject
$participantsarraynoThread participants
$membersarraynoChannel members with $role
$messagesarraynoMessages in thread
$threadsarraynoThreads in channel
$countnumbernoTotal message/thread count
$permissionsobjectnoAccess control for channels

* Required depends on $type.