{
  "handle": "Message",
  "data_schema": {
    "type": "object",
    "required": [
      "header",
      "body"
    ],
    "properties": {
      "header": {
        "type": "object",
        "properties": {
          "sender": {
            "type": "string"
          },
          "recipient": {
            "type": "string"
          },
          "timestamp": {
            "type": "string"
          }
        },
        "description": "Sender, recipient and timestamp.",
        "required": [
          "sender",
          "recipient",
          "timestamp"
        ]
      },
      "body": {
        "description": "The content payload"
      },
      "signature": {
        "type": "string",
        "description": "Sender verification"
      }
    }
  },
  "mechanism": "A structured container for a {{signal}}, adding Metadata (Sender, Recipient, Timestamp) to the raw emission.",
  "gloss": "Structured signal container",
  "invariants": [
    "Immutability: once sent, the message content cannot be changed.",
    "Addressed: carries sender, recipient and timestamp. Without a recipient it is a {{signal}} with metadata, which is what this pattern exists to be distinct from."
  ],
  "_meta": {
    "tier": 1,
    "ring": 1,
    "path": [
      "Infrastructure",
      "Data Structures"
    ],
    "supersedes": [
      "sema:Message#mh:SHA-256:b17515adef760297f0374e7cfcf4a7b3cc4f5f2c21ab0c0295285545c60482ea"
    ],
    "related": [
      "Nuancefilter#d36a"
    ]
  },
  "sema_id": "sema:Message#mh:SHA-256:bf6d3d4643c881a8c245617c3603b13ffef26026304fc7e7c384a80cf25fd237",
  "sema_ref": "Message#bf6d",
  "sema_stub": "bf6d",
  "dependencies": {
    "references": {
      "signal": "sema:Signal#mh:SHA-256:6eaff8a06e08e75279670bc09d88175d130815240fdfb3a21252c0364769c1fc"
    }
  },
  "sema_layer": "Infrastructure",
  "sema_category": "Data Structures",
  "used_by": {
    "references": {
      "Break": "sema:Break#mh:SHA-256:5003e128ac02e7835d2094d72dc929ce4c96819b56ef167c2ca8da9f16aa402a",
      "Entropy": "sema:Entropy#mh:SHA-256:d5f7482e6c06a1e48eadbf28e6dca0cc0eb176bf75c70e7e467284f656d20bae",
      "GracefulDegradation": "sema:GracefulDegradation#mh:SHA-256:6633433b9b713c199d43b085ec6e07183544183c507e5c9673aafa0518135df9",
      "Nuancefilter": "sema:Nuancefilter#mh:SHA-256:d36af5fce6b82880c7451d81e22c9aa1e86d5f8ec7a5034ba91e850906d9ce35",
      "Proposal": "sema:Proposal#mh:SHA-256:5d0a98055eef6c963d4c9ec0403cac243720ce8927398032c19b4f5d8cc94506",
      "Queue": "sema:Queue#mh:SHA-256:5689d2db87dd8752019da54910f7be96929ff84baf09cdadd2c6826b01ea5420",
      "SignalReflection": "sema:SignalReflection#mh:SHA-256:6a9a636c81581a8a5d0796881752ecbedb25d94070c2282f2ba810a85cd63e09",
      "Stream": "sema:Stream#mh:SHA-256:ffa6e636cc2ca9f13c23f5862e60aceb0885a35686fb60f12da157316b159b53",
      "TranslationProxy": "sema:TranslationProxy#mh:SHA-256:1db28b5e69a017012cdbdbe4355c97fba4dcd8e3522a82f9eb9dc5613bc293af"
    },
    "accepts": {
      "InvariantFilter": "sema:InvariantFilter#mh:SHA-256:212b8b7a75ea69b22561e19191aa5cb630aaf75f4e4229e03db798338ab00a8e",
      "RequestFraming": "sema:RequestFraming#mh:SHA-256:2280a35647a93cf3f8b03ee5fb63f8c2ec6faf19ec9627e1d9144ffa231f551e"
    }
  }
}
