{
  "schema": "futhorc-protocol-ontology/1",
  "version": "1.1.0",
  "release": "v2026.08.15.15",
  "authority": "first_party_experimental_protocol_registry",
  "truth_boundary": "Modern machine semantics below are local protocol conventions. Historical rune names or meanings do not automatically authorize, prove, or standardize modern machine operations.",
  "normalization": "NFC",
  "encoding": "UTF-8",
  "allowed_protocol_script": "selected Anglo-Saxon Futhorc runes plus declared separators only",
  "collision_policy": {
    "single_symbol_unique": true,
    "sequence_prefixes_reserved": true,
    "unknown_symbol": "reject",
    "duplicate_semantic_identifier": "reject",
    "normalization_before_lookup": "NFC"
  },
  "reserved": [
    {
      "id": "reserved.brand.ear",
      "sequence": "ᛠ",
      "purpose": "ᛠ.com brand identity; not an executable protocol operation"
    },
    {
      "id": "reserved.separator.single",
      "sequence": "᛫",
      "purpose": "optional structural separator; never carries authority"
    },
    {
      "id": "reserved.separator.double",
      "sequence": "᛬",
      "purpose": "optional structural boundary; never carries authority"
    }
  ],
  "entries": [
    {
      "id": "fo-001",
      "sequence": "ᚠ",
      "semantic_id": "resource",
      "semantic_label": "resource_or_payload",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-002",
      "sequence": "ᚢ",
      "semantic_id": "capacity",
      "semantic_label": "compute_or_capacity",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-003",
      "sequence": "ᚦ",
      "semantic_id": "threat",
      "semantic_label": "threat_or_anomaly",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-004",
      "sequence": "ᚩ",
      "semantic_id": "external-output",
      "semantic_label": "external_call_or_output",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-005",
      "sequence": "ᚪ",
      "semantic_id": "persistence",
      "semantic_label": "persistent_write",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-006",
      "sequence": "ᚱ",
      "semantic_id": "route",
      "semantic_label": "route_or_handshake",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-007",
      "sequence": "ᚳ",
      "semantic_id": "query",
      "semantic_label": "query_or_discovery",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-008",
      "sequence": "ᚷ",
      "semantic_id": "ack",
      "semantic_label": "acknowledge",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-009",
      "sequence": "ᚹ",
      "semantic_id": "success",
      "semantic_label": "success_state",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-010",
      "sequence": "ᚻ",
      "semantic_id": "fault",
      "semantic_label": "fault_or_exception",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-011",
      "sequence": "ᚾ",
      "semantic_id": "constraint",
      "semantic_label": "constraint_or_required_state",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-012",
      "sequence": "ᛁ",
      "semantic_id": "identity",
      "semantic_label": "identity_or_session",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-013",
      "sequence": "ᛉ",
      "semantic_id": "protect",
      "semantic_label": "protection_boundary",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-014",
      "sequence": "ᛚ",
      "semantic_id": "stream",
      "semantic_label": "stream_or_flow",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-015",
      "sequence": "ᛗ",
      "semantic_id": "human",
      "semantic_label": "human_review_boundary",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-016",
      "sequence": "ᛏ",
      "semantic_id": "commit",
      "semantic_label": "commit_or_transition",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-017",
      "sequence": "ᛞ",
      "semantic_id": "day-state",
      "semantic_label": "bounded_cycle_state",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-018",
      "sequence": "ᛟ",
      "semantic_id": "continuity",
      "semantic_label": "continuity_or_estate_namespace",
      "status": "experimental",
      "version_introduced": "1.0.0"
    },
    {
      "id": "fo-019",
      "sequence": "ᛈ",
      "semantic_id": "proposal",
      "semantic_label": "proposal_or_pending_state",
      "status": "experimental",
      "version_introduced": "1.1.0"
    }
  ],
  "sequences": [
    {
      "id": "fs-001",
      "sequence": "ᚱᚳᚠ",
      "semantic_id": "route.query.payload",
      "composition": [
        "fo-006",
        "fo-007",
        "fo-001"
      ],
      "status": "experimental"
    },
    {
      "id": "fs-002",
      "sequence": "ᚠᛉᛚ",
      "semantic_id": "payload.protect.stream",
      "composition": [
        "fo-001",
        "fo-013",
        "fo-014"
      ],
      "status": "experimental"
    },
    {
      "id": "fs-003",
      "sequence": "ᛁᛉᚷ",
      "semantic_id": "identity.protect.ack",
      "composition": [
        "fo-012",
        "fo-013",
        "fo-008"
      ],
      "status": "experimental"
    },
    {
      "id": "fs-004",
      "sequence": "ᛈᛗ",
      "semantic_id": "proposal.human-review",
      "composition": [
        "fo-019",
        "fo-015"
      ],
      "status": "experimental",
      "version_introduced": "1.1.0"
    }
  ],
  "migration_from": "1.0.0",
  "migration_policy": "Existing IDs and sequences must retain exact semantic assignments; additions may not collide with existing IDs, sequences, or reserved symbols."
}
