{
  "schema": "futhorc-session-profile/1",
  "release": "v2026.08.15.16",
  "session_protocol_version": "1.0.0",
  "wire_protocol": "FTH1",
  "wire_protocol_versions": [
    "1.0.0"
  ],
  "supported_ontology_versions": [
    "1.1.0",
    "1.0.0"
  ],
  "minimum_ontology_version": "1.1.0",
  "supported_flags": [
    "ack-required",
    "human-review",
    "idempotent"
  ],
  "max_frame_bytes": 65536,
  "sender_namespace_rule": "ASCII [a-z0-9][a-z0-9._-]{0,63}",
  "session_id_rule": "32 lowercase hexadecimal characters",
  "states": [
    "INIT",
    "NEGOTIATED",
    "ACTIVE",
    "CLOSED",
    "REJECTED"
  ],
  "transitions": {
    "INIT": [
      "NEGOTIATED",
      "REJECTED"
    ],
    "NEGOTIATED": [
      "ACTIVE",
      "REJECTED"
    ],
    "ACTIVE": [
      "CLOSED",
      "REJECTED"
    ],
    "CLOSED": [],
    "REJECTED": []
  },
  "capability_advertisement": {
    "schema": "futhorc-capabilities/1",
    "required_fields": [
      "schema",
      "session_id",
      "sender_namespace",
      "protocol_versions",
      "ontology_versions",
      "supported_flags",
      "max_frame_bytes",
      "created_unix_ms",
      "max_age_ms"
    ]
  },
  "negotiation_policy": {
    "protocol": "highest common semantic version",
    "ontology": "highest common semantic version at or above minimum_ontology_version",
    "flags": "sorted intersection",
    "max_frame_bytes": "minimum peer/local bound"
  },
  "wire_intents": {
    "offer": "ᛁ",
    "ack": "ᛁᛉᚷ",
    "activate": "ᛏ",
    "close": "ᛞ"
  },
  "transcript_bounds": {
    "max_events": 64,
    "max_transcript_bytes": 32768
  },
  "truth_boundary": "Capability negotiation establishes deterministic local compatibility decisions only. It does not authenticate a peer, grant authorization, prove a public standard, or establish complete network anti-replay security."
}
