{
  "handle": "Protocol",
  "data_schema": {
    "type": "object",
    "required": [
      "protocol_id",
      "rules"
    ],
    "properties": {
      "protocol_id": {
        "type": "string",
        "description": "Unique protocol identifier"
      },
      "version": {
        "type": "string",
        "description": "Semantic version (e.g., '1.0.0')"
      },
      "rules": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List of rules defining the protocol"
      },
      "formats": {
        "type": "object",
        "description": "Message format specifications"
      }
    }
  },
  "mechanism": "A marker interface. A pattern implementing 'Protocol' MUST state a rule set governing an exchange, and the exchange MUST hold between two or more parties — a procedure a single party runs against itself is a method, not a protocol. Formats, versioning and degree of formality are implementer concerns: HTTP pins all three, a ceremonial protocol pins none.",
  "gloss": "Communication standard",
  "failure_modes": [
    "Version Drift: Agents attempting to communicate with incompatible protocol versions.",
    "Ambiguous Spec: Rules that allow for multiple valid interpretations."
  ],
  "_meta": {
    "tier": 1,
    "ring": 0,
    "path": [
      "Infrastructure",
      "Data Structures"
    ],
    "supersedes": [
      "sema:Protocol#mh:SHA-256:e53765fe6abfb95285f1b698b11cc01ab3f7e1d8f82f57186f60127d92c564db"
    ],
    "related": [
      "Disputelift#b515"
    ]
  },
  "invariants": [
    "Rule set: an implementer must state the rules that govern the exchange.",
    "Inter-party: the exchange must hold between two or more parties."
  ],
  "sema_id": "sema:Protocol#mh:SHA-256:f583ad96f598ecf0c9068f5c1390bdf247d2eb67bd7a14c7ce615c357b957b46",
  "sema_ref": "Protocol#f583",
  "sema_stub": "f583",
  "sema_layer": "Infrastructure",
  "sema_category": "Data Structures",
  "used_by": {
    "references": {
      "AgentProtocol": "sema:AgentProtocol#mh:SHA-256:86a3f129036a28bab76d60f15ac835dfe779536cf02fe916f7b21cb1369ebf6d",
      "Break": "sema:Break#mh:SHA-256:5003e128ac02e7835d2094d72dc929ce4c96819b56ef167c2ca8da9f16aa402a",
      "ContinuousResourceAuction": "sema:ContinuousResourceAuction#mh:SHA-256:c725833053eec6c59a6e1cc307abb8176a0efe407e512bf718cf0f1e60a66815",
      "DataMinimization": "sema:DataMinimization#mh:SHA-256:e8c8cd89b8e187d501000746c5216fef9ea41558a20fde07372881a2948994eb",
      "Disputelift": "sema:Disputelift#mh:SHA-256:b5151ae3762b5071110d6ae827728e84549e8ce5bbd77740cf5d34d792ea2aef",
      "Experiment": "sema:Experiment#mh:SHA-256:421e41c03e27f10e09c08b1f884bbcb9addf0f232be0a5bf1097950b40f15748",
      "Nature": "sema:Nature#mh:SHA-256:9ac1fd9a3449747d2f605067023df9e13d7a60c15e556d376272266f95cfaf37",
      "OntologyHandshake": "sema:OntologyHandshake#mh:SHA-256:a43c954f7a78f74aad3c49b507933cec20cc1dea54ffd5463f3a3054cb344235",
      "Rally": "sema:Rally#mh:SHA-256:9ee797cd797df62b9883ead618c35eb8d8a5e86c171630cdc8f8ecc6066d6a89",
      "Trait": "sema:Trait#mh:SHA-256:e415fe6619857f831d831228b5532ea64d4a6a222773c828098f30d36f450b20",
      "Translate": "sema:Translate#mh:SHA-256:31ed60a9638151e862227245e0d9a4752ce6c59ee6023ddd84222c2e7afb63ea",
      "TranslationProxy": "sema:TranslationProxy#mh:SHA-256:1db28b5e69a017012cdbdbe4355c97fba4dcd8e3522a82f9eb9dc5613bc293af"
    }
  }
}
