subc-protocol 0.5.0

Shared wire contract for subc <-> modules: the 17-byte envelope, the Frame (header + opaque body), channel-0 control bodies, route.bind/RouteTarget session shapes, and the capability manifest. Single source of truth, depended on by subc-core and AFT.
Documentation
{
  "control_ops": [
    "route.bind",
    "route.status"
  ],
  "manifest": {
    "bindings": {
      "identity": {
        "optional": [
          "session"
        ],
        "requires": [
          "project"
        ]
      },
      "storage": {
        "kind": "sqlite",
        "owns_schema": true,
        "scope": "project"
      },
      "vault_grants": []
    },
    "consumes": [],
    "module_id": "aft-tools",
    "module_version": "1.2.3",
    "protocol_ver": 1,
    "provides": [
      {
        "concurrency": "module_managed",
        "emits_push": true,
        "identity_scope": [
          "project",
          "session"
        ],
        "role": "tool_provider",
        "sub_supervises": true,
        "tools": [
          {
            "execution_mode": "pure",
            "name": "memory.read",
            "schema": {
              "required": [
                "id"
              ],
              "type": "object"
            }
          }
        ]
      }
    ],
    "scheduled_tasks": [],
    "trust_tier": "first_party"
  },
  "protocol_ver": 1
}