{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://hypercortex.org/schemas/message_schema.json", "title": "HMP Message Schema", "description": "Validates all message types in the HyperCortex Mesh Protocol (HMP): P2P, Broadcast, Relay, Topiccast.", "type": "object", "oneOf": [ { "$ref": "#/definitions/p2p" }, { "$ref": "#/definitions/broadcast" }, { "$ref": "#/definitions/relay" }, { "$ref": "#/definitions/topiccast" } ], "definitions": { "common": { "type": "object", "properties": { "type": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } }, "required": ["type", "timestamp"], "additionalProperties": true }, "p2p": { "allOf": [ { "$ref": "#/definitions/common" }, { "type": "object", "properties": { "type": { "const": "p2p" }, "from": { "type": "string" }, "to": { "type": "string" }, "payload": { "type": "string" }, "encryption": { "type": "string" } }, "required": ["from", "to", "payload"] } ] }, "broadcast": { "allOf": [ { "$ref": "#/definitions/common" }, { "type": "object", "properties": { "type": { "const": "broadcast" }, "content": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "ttl": { "type": "string", "format": "date-time" } }, "required": ["content"] } ] }, "relay": { "allOf": [ { "$ref": "#/definitions/common" }, { "type": "object", "properties": { "type": { "const": "relay" }, "from": { "type": "string" }, "to": { "type": "string" }, "relay": { "type": "string" }, "payload": { "type": "string" }, "encryption": { "type": "string" } }, "required": ["from", "to", "relay", "payload"] } ] }, "topiccast": { "allOf": [ { "$ref": "#/definitions/common" }, { "type": "object", "properties": { "type": { "const": "topiccast" }, "payload": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "hash": { "type": "string" } }, "required": ["payload", "tags"] } ] } } }