OverviewFilesCommitsIssuesDocsReleasesPeers

P2P-Hiverelay / packages / blind-protocol / hiverelay-blind-schema-catalog-v1.draft.cenc

2077 lines · cenc ref:
�AdmissionCostRuleV1_AdmissionCostRuleV1FAdmissionCostRuleV1 {
  costClassRuleId:  u16
  ruleKind:         u8
}AdmissionParametersV1��AdmissionParametersV1�~AdmissionParametersV1 {
  version:          u8 = 1
  relayPublicKey:   32 bytes
  profileId:        u16
  schemeId:         u16
  conformanceClass: u8
  roleBits:         u16
  verifierKey:      bounded bytes[0..4096]
  resourceCosts:    sorted array[1..512] of
                    { familyId: u8, operationId: u8, resourceClass: u8,
                      leaseClass: u8, costUnits: u64 }
  tokenMaxBytes:    u16             // <= 4096
  issuanceUrl:      optional canonical URL bytes[1..512]
  issuerRelayKey:   optional 32 bytes
  validFromEpoch:   u32
  expiresEpoch:     u32
  nonce:            32 bytes
  signature:        64 bytes
}AdmissionProfileV1�vAdmissionProfileV1�\AdmissionProfileV1 {
  profileId:        u16     // unique within descriptor, 1..65535
  schemeId:         u16
  conformanceClass: u8      // 1 open, 2 private
  roleBits:         u16     // operations/hops at which this profile redeems
  parameterUrl:     optional canonical URL bytes[1..512] // evidence mirror only
  parameterHash:    32 bytes
}AdmissionV1�AdmissionV1�AdmissionV1 {
  profileId:       u16
  schemeId:        u16
  parameterHash:   32 bytes
  token:           bounded bytes[1..4096]
}BatchGetEntryV1�BatchGetEntryV1}BatchGetEntryV1 = tagged union {
  0: { status: absent }
  1: { status: found, sizeClass: u8, cellBlob: exact class bytes }
}BatchGetResultV1�ZBatchGetResultV1�BatchGetResultV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  requestNonce:     32 bytes
  requestCommitment:32 bytes
  entries: ordered array[1..64] of tagged BatchGetEntryV1
  entriesCommitment:BLAKE2b-256(canonical(entries))
  signature:        64 bytes
}BatchGetEntryV1RelayResultBindingV1BatchGetSignaturePayloadV1�BatchGetSignaturePayloadV1�BatchGetSignaturePayloadV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  requestNonce:     32 bytes
  requestCommitment:32 bytes
  entriesCommitment:32 bytes
}RelayResultBindingV1
BatchGetV1�
BatchGetV1�BatchGetV1 {
  version:         u8 = 1
  clientNonce:     32 bytes
  slots:           bounded array[1..64] of 32 bytes
  admission:       optional AdmissionV1
}AdmissionV1	!BlindAdmissionParametersRequestV1�!BlindAdmissionParametersRequestV1�BlindAdmissionParametersRequestV1 {
  version:          u8 = 1
  profileId:        u16
  schemeId:         u16
  clientNonce:      32 bytes
}
BlindBackupChunkManifestV1�sBlindBackupChunkManifestV1�2BlindBackupChunkManifestV1 {
  version:               u8 = 1
  backupId:              32 random nonzero bytes
  encryptionProfile:     BlindBackupEncryptionProfileV1
  encryptionManifestHash:32 bytes
  entries:               sorted array[1..16777216] of {
                           path: portable relative ASCII bytes[1..512],
                           fileOffset: u64,
                           plaintextByteLength: u32[1..4194304],
                           ciphertextByteLength:u32[17..4194320],
                           chunkObjectId:32 random nonzero bytes,
                           chunkSalt:32 random nonzero bytes,
                           nonce: 24 bytes,
                           ciphertextHash: 32 bytes
                         }
  totalPlaintextByteLength:u64
  totalCiphertextByteLength:u64
}BlindBackupEncryptionProfileV1BlindBackupEncryptionProfileV1�QBlindBackupEncryptionProfileV1�+BlindBackupEncryptionProfileV1 {
  version:               u8 = 1
  algorithmId:           u16 = 1 // XCHACHA20_POLY1305_IETF
  keyDerivationId:       u16 = 1 // HKDF_SHA256
  recoveryKeyId:         32 random nonzero bytes
  keyEpoch:              u32 // nonzero; rotation forces full re-encryption
}BlindBackupManifestV1��BlindBackupManifestV1��BlindBackupManifestV1 {
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 bytes
  externalJournalId:     32 random nonzero bytes
  durabilityContinuityHash:32 bytes
  backupId:              32 random nonzero bytes
  backupFailureGroupId:  32 nonzero topology-witness-assigned bytes
  storeManifestRevision: u64
  storeManifestHash:     32 bytes
  storeFormatHash:       32 bytes
  coverageCutoffExternalUnixMillis:u64
  coveredWalSequence:    u64
  coveredWalHash:        32 bytes
  externalFloorRevision: u64
  externalFloorHash:     32 bytes
  externalCheckpointRevision:u64
  externalCheckpointHash:32 bytes
  baseFloorRevision:     u64
  baseFloorHash:         32 bytes
  controlSnapshotHash:   32 bytes
  backupEncryptionProfileHash:32 bytes
  encryptionManifestHash:32 bytes
  chunkManifestByteLength:u64
  chunkManifestHash:     32 bytes
  totalPlaintextByteLength:u64
  totalCiphertextByteLength:u64
  restoreVerifierPublicKey:optional 32-byte Ed25519 public key
  cleanRestoreEvidenceHash:optional 32 bytes
  createdExternalUnixMillis:u64
  restoreSupportExpiresUnixMillis:u64
  witnessPublicKey:      32-byte Ed25519 public key
  signature:             64-byte Ed25519 signature
}
 BlindBackupRetentionTransitionV1�� BlindBackupRetentionTransitionV1��BlindBackupRetentionTransitionV1 {
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 bytes
  externalJournalId:     32 random nonzero bytes
  durabilityContinuityHash:32 bytes
  backupId:              32 random nonzero bytes
  backupManifestHash:    32 bytes
  transitionRevision:    u64
  previousTransitionHash:optional 32 bytes // absent rev1; otherwise H(previous)
  operation:             u8 // 1 REGISTER, 2 EXTEND, 3 RETIRE
  supportExpiresUnixMillis:u64
  replacementBackupId:  optional 32 bytes
  effectiveExternalTimeFloorMillis:u64
  witnessPublicKey:      32-byte Ed25519 public key
  signature:             64-byte Ed25519 signature
}BlindCleanRestoreEvidenceV1��BlindCleanRestoreEvidenceV1�lBlindCleanRestoreEvidenceV1 {
  version:               u8 = 1
  backupId:              32 random nonzero bytes
  backupCandidateCommitment:32 bytes
  restoredStoreManifestHash:32 bytes
  verifiedWalSequence:   u64
  verifiedWalHash:       32 bytes
  verifiedExternalFloorRevision:u64
  verifiedExternalFloorHash:32 bytes
  verifiedCheckpointRevision:u64
  verifiedCheckpointHash:32 bytes
  scrubbedObjectCount:   u64
  scrubFailureCount:     u32 = 0
  startedExternalUnixMillis:u64
  completedExternalUnixMillis:u64
  verifierPublicKey:     32-byte Ed25519 public key
  signature:             64-byte Ed25519 signature
}BlindCoreAckV1��BlindCoreAckV1��BlindCoreAckV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  corePublicKey:    32 bytes
  fork:             u64
  length:           u64
  signedHeadHash:   32 bytes
  observedAtEpoch:  u32
  leaseEpoch:       u32
  result:           u8 // 1 MIRROR_ACCEPTED, 2 RECENTLY_SERVED
  requestNonce:     32 bytes
  requestCommitment:32 bytes
  signature:        relay Ed25519 signature over canonical domain-separated bytes
}RelayResultBindingV1BlindDescribeGetV1�BlindDescribeGetV1�BlindDescribeGetV1 {
  version:          u8 = 1
  descriptorHash:   optional 32 bytes // absent=current; present=history by hash
  clientNonce:      32 bytes
}BlindDhtPointerV1�{BlindDhtPointerV1�bBlindDhtPointerV1 {          // total canonical bytes <= 1000
  version:          u8 = 1
  relayPublicKey:   32 bytes
  descriptorSequence:u64
  descriptorHash:  32 bytes
  descriptorUrl:   canonical HTTPS URL bytes[1..512]
  transportBits:   u16
  issuedEpoch:      u32
  expiresEpoch:     u32
  nonce:            32 bytes
  signature:        64 bytes
}BlindDispatchFrameV1�BlindDispatchFrameV1��BlindDispatchFrameV1 {
  frameLength:   u32                  // bytes after this field, <= 4 MiB + 64
  version:       u8 = 1
  frameKind:     u8                   // 1 request, 2 response, 3 error,
                                      // 4 stream-control/data
  familyId:      u8
  operationId:   u8
  flags:         u8 = 0               // all bits reserved in v1
  requestId:     16 bytes             // random nonzero for unary/open; zero for stream
  streamId:      u64                  // zero for unary/open request; nonzero after open
  sequence:      u64                  // zero for unary; per-sender monotonic for stream
  bodyLength:    u32                  // exact following bytes, <= family/op cap
  body:          exact canonical operation bytes
}BlindErrorV1�BlindErrorV1�BlindErrorV1 {
  version:         u8 = 1
  code:            stable u8 enum
  retryable:       u8 = 0 | 1
  retryAfterEpoch: optional u32
}BlindExternalCommitWitnessV1��BlindExternalCommitWitnessV1��BlindExternalCommitWitnessV1 { // conditionally present under the closed table below
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 random nonzero bytes
  externalJournalId:     32 random nonzero bytes
  durabilityContinuityHash:32 bytes
  durabilityProfileHash: 32 bytes
  restoreEvidenceHeadSequence:u64
  restoreEvidenceHeadHash:32 bytes
  familyId:              u8
  operationId:           u8
  requestCommitment:     32 bytes
  resultCommitment:      32 bytes
  commitWalSequence:     u64
  commitWalHash:         32 bytes
  coveringFloorRevision:u64
  coveringFloorHash:     32 bytes
  coveringFloorWalSequence:u64
  coveringFloorWalHash:  32 bytes
  writerEpoch:           u64
  writerFenceTokenHash:  32 bytes
  externalLeaseRevision: u64
  witnessedUnixMillis:   u64
  witnessPublicKey:      32-byte Ed25519 public key
  signature:             64-byte Ed25519 signature
}BlindExternalJournalTopologyV1��BlindExternalJournalTopologyV1��BlindExternalJournalTopologyV1 { // public generic durability evidence
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 bytes
  externalJournalId:     32 random nonzero bytes
  durabilityContinuityHash:32 bytes
  topologySequence:      u64
  previousTopologyHash:  optional 32 bytes
  replicationClass:      u8 = 1
  commitQuorum:          u8 = 2
  sharedFailureGroupId:  32 random nonzero bytes
  liveStoreFailureGroupId:32 nonzero topology-witness-assigned bytes
  backupFailureGroups:   sorted array[0..16] of {
                           backupFailureGroupId:32 nonzero witness-assigned bytes,
                           operatorGroupId:32 random nonzero bytes
                         }
  nodes:                 sorted array[3..3] of {
                           nodePublicKey: 32-byte Ed25519 public key,
                           operatorGroupId: 32 random nonzero bytes,
                           failureDomainId: 32 random nonzero bytes,
                           roleConflictBits: u16
                         }
  issuedEpoch:           u32
  expiresEpoch:          u32
  witnessPublicKey:      32-byte Ed25519 public key
  signature:             64-byte Ed25519 signature
}BlindForwardCloseV1�BlindForwardCloseV1��BlindForwardCloseV1 {
  version:          u8 = 1
  circuitNonce:     32 bytes
  closeKind:        u8               // 1 FIN(send side), 2 ABORT(both sides)
  finalSendOffset:  u64
  reasonCode:       u8               // generic bounded enum, no app text
}BlindForwardDataV1�BlindForwardDataV1�BlindForwardDataV1 {
  version:          u8 = 1
  circuitNonce:     32 bytes
  offset:           u64
  bytes:            bounded opaque bytes[1..maxDataBytes]
}BlindForwardHopAcceptV1��BlindForwardHopAcceptV1��BlindForwardHopAcceptV1 { // returned before destination resources are exposed
  version:                  u8 = 1
  previousRelayKey:         32 bytes
  previousDescriptorSequence:u64
  previousDescriptorHash:  32 bytes
  nextRelayKey:             32 bytes
  nextDescriptorSequence:   u64
  nextDescriptorHash:       32 bytes
  nextRelayBinding:         RelayResultBindingV1
  routeId:                  16 bytes
  circuitNonce:             32 bytes
  nextStreamId:             u64 // random nonzero on adjacent authenticated link
  grantedWireClass:         u8
  circuitClass:             u8
  grantedInitialWindow:     u32
  maxDataBytes:             u32
  maxCircuitBytes:          u64
  idleMillis:               u32
  lifetimeMillis:           u32
  openedAtEpoch:            u32
  hopOpenCommitment:        32 bytes
  handshakeFlight2:         96 bytes
  nextSignature:            64 bytes
}RelayResultBindingV1BlindForwardHopOpenV1��BlindForwardHopOpenV1��BlindForwardHopOpenV1 { // authenticated length-delimited adjacent-hop preface
  version:                  u8 = 1
  route:                    BlindTransportRouteV1
  routeScope:               BlindForwardRouteScopeV1
  previousDescriptorSequence:u64
  previousDescriptorHash:  32 bytes
  circuitNonce:             32 bytes
  requestedWireClass:       u8
  circuitClass:             u8
  grantedInitialWindow:     u32
  maxDataBytes:             u32
  maxCircuitBytes:          u64
  idleMillis:               u32
  lifetimeMillis:           u32
  clientRequestCommitment:  32 bytes
  handshakeFlight1:         32 bytes
  forwarderSignature:       64 bytes
}BlindForwardRouteScopeV1BlindTransportRouteV1BlindForwardOpenResultV1��BlindForwardOpenResultV1�JBlindForwardOpenResultV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  routeId:          16 bytes
  nextDescriptorSequence:u64
  nextDescriptorHash:32 bytes
  circuitNonce:     32 bytes
  grantedWireClass:u8           // exactly requestedWireClass in v1
  circuitClass:     u8
  streamId:         u64             // random nonzero on this authenticated channel
  grantedInitialWindow:u32          // exact circuitClass tuple
  maxDataBytes:     u32             // exact wireClass bytes in split-native
  maxCircuitBytes:  u64             // exact circuitClass tuple
  idleMillis:      u32             // exact circuitClass tuple
  lifetimeMillis:  u32             // exact circuitClass tuple
  openedAtEpoch:   u32
  requestCommitment:32 bytes
  nextHopAccept:   BlindForwardHopAcceptV1
  signature:       64 bytes
}BlindForwardHopAcceptV1RelayResultBindingV1BlindForwardOpenV1��BlindForwardOpenV1�cBlindForwardOpenV1 {
  version:              u8 = 1
  routeId:              16 bytes
  nextDescriptorSequence:u64
  nextDescriptorHash:   32 bytes
  requestedWireClass:   u8
  circuitClass:         u8
  circuitNonce:         32 bytes
  hopAdmission:         AdmissionV1
  innerHandshake:       bounded opaque bytes[32] // exact Curve25519 Noise flight 1
}AdmissionV1BlindForwardRouteHopV1�9BlindForwardRouteHopV1�BlindForwardRouteHopV1 {
  hopIndex:              u8 // 0..3
  relayPublicKey:        32 nonzero bytes
  descriptorSequence:   u64
  descriptorHash:       32 nonzero bytes
  previousScopeHash:     32 bytes
  scopeHash:             32 nonzero bytes
  relaySignature:        64 bytes
}BlindForwardRouteScopeV1�sBlindForwardRouteScopeV1�<BlindForwardRouteScopeV1 {
  version:               u8 = 1
  rootRouteId:           16 nonzero bytes
  rootCircuitNonce:      32 nonzero bytes
  rootRequestCommitment: 32 nonzero bytes
  maxRelayCount:         u8 // 2..4
  expiresEpoch:          u32 // nonzero
  hops:                  BlindForwardRouteHopV1[1..4]
}BlindForwardRouteHopV1BlindForwardWindowV1�BlindForwardWindowV1�BlindForwardWindowV1 {
  version:          u8 = 1
  circuitNonce:     32 bytes
  consumedThrough:  u64
  creditIncrement:  u32             // 1..1 MiB; total credit remains capped
}BlindHealthChallengeV1�RBlindHealthChallengeV1�4BlindHealthChallengeV1 {
  version:          u8 = 1
  descriptorSequence:u64
  descriptorHash:   32 bytes
  endpointId:       u8 // exact signed descriptor endpoint
  transportSupportBit:u16 // exactly one frozen support bit
  requestedRoleBits:u16
  requestedOperationBits:u32
  clientNonce:      32 bytes
} BlindHealthResultV1��BlindHealthResultV1��BlindHealthResultV1 {
  version:          u8 = 1
  relayPublicKey:   32 bytes
  storeId:          32 random nonzero bytes
  descriptorSequence:u64
  descriptorHash:   32 bytes
  endpointId:       u8 // exact challenged endpoint
  transportSupportBit:u16 // exact challenged one-hot support bit
  durabilityContinuityHash:32 bytes
  durabilityProfileHash:32 bytes
  clientNonce:      32 bytes
  readyRoleBits:    u16
  readyOperationBits:u32
  clockState:       u8       // 1 ready, 2 unsafe, 3 verifying
  effectiveEpochFloor:u32
  integrityState:   u8       // 1 verified, 2 degraded, 3 failed
  checkpointAgeBand:u8       // coarse universal band, no exact revision/time
  scrubAgeBand:     u8       // coarse universal band, no exact revision/time
  rebalanceState:   u8       // 0 stable, 1 copying, 2 catching-up, 3 fenced
  capacityBand:     u8
  challengeEpoch:   u32
  signature:        64 bytes
}!BlindOhttpKeyConfigV1��BlindOhttpKeyConfigV1��BlindOhttpKeyConfigV1 {
  version:          u8 = 1
  gatewayRelayKey:  32 bytes
  gatewayDescriptorSequence:u64
  configId:         u8
  kemId:            u16
  kdfId:            u16
  aeadId:           u16
  encodedPublicKey: bounded bytes[1..256]
  notBeforeEpoch:   u32
  notAfterEpoch:    u32
  previousConfigHash:optional 32 bytes
  signature:        gateway relay Ed25519 signature
}"BlindOhttpTransportErrorV1�BlindOhttpTransportErrorV1{BlindOhttpTransportErrorV1 {
  version: u8 = 1
  code:    u8 // 1 MALFORMED_INNER, 2 TARGET_UNAVAILABLE, 3 TARGET_TIMEOUT
}#BlindOuterEnvelopeV1�LBlindOuterEnvelopeV1�BlindOuterEnvelopeV1 {       // exact total bytes = outerClass size
  version:          u8 = 1
  outerClass:       u8
  innerLength:      u32      // exact complete BlindDispatchFrameV1 bytes
  innerDispatch:    bytes[innerLength]
  randomPadding:    remaining bytes to exact class
}BlindDispatchFrameV1$BlindReceiptV1�nBlindReceiptV1�CBlindReceiptV1 {
  version:        u8 = 1
  protocol:       exact ASCII "hiverelay-blind-cell-v1" (23 bytes)
  relayBinding:   RelayResultBindingV1
  slotCommitment: BLAKE2b-256(slot)
  cellBlobHash:    32 bytes
  allocationCommitment: 32 bytes
  requestCommitment:32 bytes
  sizeClass:      u8
  allocationEpoch:u32
  leaseClass:     u8
  leaseEpoch:     u32
  stateRevision:  u64
  receiptEpoch:   u32
  requestNonce:   32 bytes
  result:         u8 // 1 STORED, 2 SERVED, 3 RENEWED, 4 DROPPED
  signature:      64-byte Ed25519 signature over canonical domain-separated bytes
}RelayResultBindingV1%BlindRestoreEvidenceBundleV1�?BlindRestoreEvidenceBundleV1�BlindRestoreEvidenceBundleV1 { // fetched exact bytes, canonical size <= 524288
  version:               u8 = 1
  heads:                 ordered array[1..385] of BlindRestoreEvidenceHeadV1
  currentBackupManifestBytes:bounded canonical bytes[1..65535]
  currentRetentionTransitionBytes:bounded canonical bytes[1..8192]
  drillBackupManifestBytes:bounded canonical bytes[1..65535]
  drillCleanRestoreEvidenceBytes:bounded canonical bytes[1..8192]
  drillRetentionTransitionBytes:bounded canonical bytes[1..8192]
}BlindRestoreEvidenceHeadV1&BlindRestoreEvidenceHeadV1��BlindRestoreEvidenceHeadV1�xBlindRestoreEvidenceHeadV1 { // independently advancing public profile-2 feed
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 bytes
  externalJournalId:     32 random nonzero bytes
  durabilityContinuityHash:32 bytes
  restoreEvidenceFeedId: 32 random nonzero bytes
  evidenceSequence:      u64
  previousEvidenceHeadHash:optional 32 bytes
  currentBackupManifestHash:32 bytes
  currentRetentionTransitionHash:32 bytes // H(current REGISTER or EXTEND)
  currentCoveredWalSequence:u64
  currentExternalFloorRevision:u64
  currentChunkObjectCount:u64
  currentAvailabilityAuditHash:32 bytes
  currentSupportExpiresUnixMillis:u64
  drillBackupManifestHash:32 bytes
  drillCleanRestoreEvidenceHash:32 bytes
  drillRetentionTransitionHash:32 bytes // H(current REGISTER or EXTEND)
  restoreDrillCompletedUnixMillis:u64
  drillSupportExpiresUnixMillis:u64
  issuedExternalUnixMillis:u64
  expiresExternalUnixMillis:u64
  issuedEpoch:           u32 // checked floor(issuedExternalUnixMillis/21600000)
  witnessPublicKey:      32-byte Ed25519 public key
  signature:             64-byte Ed25519 signature
}'BlindServiceDescriptorV1�WBlindServiceDescriptorV1��BlindServiceDescriptorV1 {
  version:          u8 = 1
  relayPublicKey:   32 bytes
  storeId:          32 random nonzero bytes
  descriptorSequence:u64
  previousDescriptorHash:optional 32 bytes
  identitySequence: u64
  previousRelayKey: optional 32 bytes
  identityTransition:optional RelayIdentityTransitionV1
  build:            BuildProfileV1
  protocols:        sorted array[1..16] of ProtocolProfileV1
  endpoints:        sorted array[1..16] of TransportEndpointV1
  cellSizeClassBits:u8
  leaseClassBits:   u8
  maxBatchCount:    u16     // <= 64
  maxResponseBytes: u32     // <= 4 MiB
  maxSponsoredCoreLength:u64
  enabledOperationBits:u32 // operation-ordinal bitmap; bits 22..31 zero
  admissionProfiles:sorted array[1..8] of AdmissionProfileV1
  durability:       DurabilityProfileV1
  durabilityContinuityHash:32 bytes
  durabilityProfileHash:32 bytes
  storeLifecycleState:u8 // 1 ACTIVE, 2 DRAINING, 3 RETIRED
  drainStartedEpoch:optional u32 // present exactly for DRAINING/RETIRED
  capacityBand:     u8      // coarse enum 0..7, not an exact byte count
  issuedEpoch:      u32
  expiresEpoch:     u32     // issued < expiry <= issued + 4
  descriptorNonce:  32 bytes
  signature:        64 bytes
}AdmissionProfileV1BuildProfileV1DurabilityProfileV1ProtocolProfileV1RelayIdentityTransitionV1TransportEndpointV1(BlindStreamChunkPlainV1��BlindStreamChunkPlainV1�rBlindStreamChunkPlainV1 {    // exact total = wireClass bytes - 16-byte AEAD tag
  version:          u8 = 1
  wireClass:        u8       // ciphertext: 1=4096, 2=16384, 3=65535 bytes
  flags:            u8       // bit 0 FIN; other bits zero
  contentLength:    u32
  content:          bytes[contentLength]
  randomPadding:    remaining bytes to (wireClass bytes - 16)
})BlindTransportRouteV1��BlindTransportRouteV1��BlindTransportRouteV1 {
  version:              u8 = 1
  routeKind:            u8  // 1 OHTTP ingress→gateway,
                            // 2 Protomux entry→exit, 3 Protomux exit→storage,
                            // 4 MASQUE entry→exit, 5 MASQUE exit→storage,
                            // 6 mix hop→next hop
  routeId:              16 random bytes
  previousRelayKey:     32 bytes
  previousEndpointId:   u8
  nextRelayKey:         32 bytes
  nextDescriptorSequence:u64
  nextDescriptorHash:   32 bytes
  nextEndpointId:       u8
  envelopeClassBits:    u16
  wireClassBits:        u8
  maxCanonicalDispatchBytes:u32
  maxEncapsulatedRequestBytes:u32
  maxOpenBytes:         u32
  maxCircuitBytes:      u64
  maxConcurrentStreams: u16
  hopAdmissionProfileId:u16
  issuedEpoch:          u32
  expiresEpoch:         u32  // issued < expiry <= issued + 4
  routeNonce:           32 bytes
  previousSignature:    64 bytes
}*BuildProfileV1��BuildProfileV1��BuildProfileV1 {
  specHash:         32 bytes
  abiHash:          32 bytes
  vectorSetHash:    32 bytes
  evidenceFormatHash:32 bytes
  evidenceVectorSetHash:32 bytes
  storeFormatHash:  32 bytes
  storeVectorSetHash:32 bytes
  privateIpcFormatHash:32 bytes
  privateIpcVectorSetHash:32 bytes
  buildArtifactHash:32 bytes
  buildArtifactUrl: canonical HTTPS URL bytes[1..512]
  buildManifestUrl: canonical HTTPS URL bytes[1..512]
  buildManifestHash:32 bytes
  releaseEvidenceBundleUrl:canonical HTTPS URL bytes[1..512]
  releaseEvidenceBundleHash:32 bytes
  releaseSupportHorizonHash:32 bytes
  runtimeBoundaryEvidenceUrl:canonical HTTPS URL bytes[1..512]
  runtimeBoundaryEvidenceHash:32 bytes
}+CoreMirrorRequestV1�CoreMirrorRequestV1�CoreMirrorRequestV1 {
  version:          u8 = 1
  corePublicKey:    32 bytes
  fork:             u64
  length:           u64
  signedHeadHash:   32 bytes
  leaseClass:       u8
  clientNonce:      32 bytes
  admission:        AdmissionV1
}AdmissionV1,CoreOpenReplicationResultV1��CoreOpenReplicationResultV1��CoreOpenReplicationResultV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  wireProfileHash:  32 bytes
  sessionClass:     u8
  controlChannelId: u64
  parentChannelBinding:32 bytes
  streamId:         u64 // child adapter stream, random nonzero
  maxSessionBytes:  u64
  idleMillis:       u32
  lifetimeMillis:   u32
  openedAtEpoch:    u32
  requestNonce:     32 bytes
  requestCommitment:32 bytes
  signature:        64 bytes
}RelayResultBindingV1-CoreOpenReplicationV1�YCoreOpenReplicationV1�0CoreOpenReplicationV1 {
  version:          u8 = 1
  wireProfileHash:  32 bytes
  sessionClass:     u8 // frozen C1/C2/C3 class
  controlChannelId: u64 // client-random nonzero, unique in authenticated session
  parentChannelBinding:32 bytes
  clientNonce:      32 bytes
  admission:        AdmissionV1
}AdmissionV1.CoreServeChallengeV1�PCoreServeChallengeV1�(CoreServeChallengeV1 {
  version:          u8 = 1
  corePublicKey:    32 bytes
  fork:             u64
  length:           u64
  signedHeadHash:   32 bytes
  blockIndices:     sorted distinct array[1..16] of u64 below length
  clientNonce:      32 bytes
  admission:        optional AdmissionV1
}AdmissionV1/CoreServeResultV1�CoreServeResultV1�CoreServeResultV1 {
  version:          u8 = 1
  acknowledgement:  BlindCoreAckV1
  proofsAndBlocks:   bounded canonical upstream Hypercore proof response
}BlindCoreAckV10DomainRegistryEntryV1��DomainRegistryEntryV1�gDomainRegistryEntryV1 {
  domainId:         u16
  purpose:          u8 // 1 request commitment, 2 result signature,
                       // 3 auxiliary WIRE signature
  recipeId:         u8 // 1 operation-defined commitment preimage,
                       // 2 Ed25519(domain || len64(payload) || payload)
  exactAsciiBytes:  canonical ASCII bytes[1..96]
}1
DropCellV1�
DropCellV1�DropCellV1 {
  version:         u8 = 1
  storageSlot:     32 bytes
  expectedRevision:u64
  expectedLeaseEpoch:u32
  clientNonce:     32 bytes
  signature:       64 bytes
}2DurabilityContinuityBindingV1�(DurabilityContinuityBindingV1�DurabilityContinuityBindingV1 {
  version:          u8 = 1
  profileId:        u8
  externalJournalId:32 bytes
  externalWitnessPublicKey:32 bytes
  externalJournalReplicationClass:u8
  externalJournalFailureGroupId:32 bytes
  restoreEvidenceFeedId:32 bytes
}3DurabilityProfileV1�qDurabilityProfileV1�VDurabilityProfileV1 {
  profileId:        u8 // 1 LOCAL_FSYNC_IDENTITY_RESET_V1,
                       // 2 CONTROL_RPO0_3_NODE_V1
  storeFormatMajor: u16
  storeFormatMinor: u16
  storeFormatHash:  32 bytes
  externalJournalId:32 bytes // all zero for profile 1; random nonzero for 2
  externalWitnessPublicKey:32 bytes // all zero for 1; Ed25519 key for 2
  externalJournalReplicationClass:u8 // 0 for 1; 1 LINEARIZABLE_3_NODE_QUORUM_V1 for 2
  externalJournalFailureGroupId:32 bytes // zero for 1; stable nonzero for 2
  externalCheckpointAgeBand:u8
  externalJournalTopologyUrl:optional canonical HTTPS URL bytes[1..512] // absent for 1
  externalJournalTopologyHash:32 bytes // zero for 1
  restoreEvidenceFeedUrl:optional canonical HTTPS URL bytes[1..512] // feed-bound/backed evidence mirror
  restoreEvidenceFeedId:32 bytes // zero for profile1/control-only; otherwise stable nonzero
  restoreEvidenceCheckpointSequence:u64 // zero until a feed head; nonzero when backed
  restoreEvidenceCheckpointHash:32 bytes // paired zero or complete signed head hash
  acknowledgedRpoBand:u8 // 0 undeclared, 1 <=15m, 2 <=1h, 3 <=6h
  targetRtoBand:    u8   // 0 undeclared, 1 <=1h, 2 <=4h, 3 <=24h
  redundancyClass: u8   // 0 single, 1 local redundant, 2 verified off-host backup; 3 reserved invalid
  restoreDrillAgeBand:u8 // universal coarse age band or unknown
}4ErrorProfileEntryV1�ErrorProfileEntryV1�ErrorProfileEntryV1 {
  errorProfileId:        u8 = 1
  code:                  u8
  directCorrelatedStatus:u16 = 200
  protectedInnerStatus:  u16 = 200
  retryable:             u8 = 0 | 1
  retryAfterMode:        u8 // 0 MUST be absent, 1 MUST be present
}5GetCellResultV1�GetCellResultV1xGetCellResultV1 {
  version:         u8 = 1
  sizeClass:       u8
  cellBlob:        exact bytes selected by sizeClass
}6	GetCellV1�	GetCellV1�GetCellV1 {
  version:         u8 = 1
  storageSlot:     32 bytes
  clientNonce:     32 bytes
  admission:       optional AdmissionV1
}AdmissionV17InboxAppendAckV1��InboxAppendAckV1�wInboxAppendAckV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  topicCommitment:  BLAKE2b-256(physicalTopic)
  frameHash:        32 bytes
  appendRevision:   u64
  storedAtEpoch:    u32
  expiresAtEpoch:   u32
  requestNonce:     32 bytes
  requestCommitment:32 bytes
  result:           u8 = 1 // STORED
  signature:        relay Ed25519 signature
}RelayResultBindingV18
InboxAppendV1��
InboxAppendV1�pInboxAppendV1 {
  version:          u8 = 1
  physicalTopic:    32 bytes
  frameClass:       u8             // 1=4 KiB, 2=16 KiB, 3=64 KiB total
  frameHash:        32 bytes
  clientNonce:      32 bytes
  appendSignature:  optional 64 bytes, required exactly for auth mode 1
  admission:        AdmissionV1
  frame:            exact fixed-size randomized opaque bytes
}AdmissionV19
InboxCreateV1�;
InboxCreateV1�InboxCreateV1 {
  version:          u8 = 1
  allocationEpoch:  u32
  physicalTopic:    32 bytes
  frameClassBits:   u8
  appendAuthMode:   u8             // 0 open-capability, 1 signature-required
  createPublicKey:  32 bytes
  appendPublicKey:  optional 32 bytes, required exactly for mode 1
  renewPublicKey:   32 bytes
  closePublicKey:   32 bytes
  retentionClass:   u8             // R1/R7/R30/R90; per-frame retention
  leaseClass:       u8
  clientNonce:      32 bytes
  createSignature:  64 bytes
  admission:        AdmissionV1
}AdmissionV1:
InboxManageV1��
InboxManageV1�_InboxManageV1 {
  version:          u8 = 1
  operation:        u8             // 1 renew, 2 close
  physicalTopic:    32 bytes
  expectedRevision: u64
  expectedLeaseEpoch:u32
  leaseClass:       u8             // NONE for close
  clientNonce:      32 bytes
  signature:        64 bytes
  admission:        optional AdmissionV1 // required for renew
}AdmissionV1;InboxReadResultV1�\InboxReadResultV1�InboxReadResultV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  requestNonce:     32 bytes
  requestCommitment:32 bytes
  snapshotRevision: u64
  entries:          bounded ordered array[0..64] of
                    { appendRevision: u64, frameHash: 32,
                      frameClass: u8, frame: exact class bytes }
  entriesCommitment:BLAKE2b-256(canonical(entries))
  nextCursor:       optional opaque bytes, maximum 128
  signature:        relay Ed25519 signature over InboxReadSignaturePayloadV1
}InboxReadSignaturePayloadV1RelayResultBindingV1<InboxReadSignaturePayloadV1�;InboxReadSignaturePayloadV1�InboxReadSignaturePayloadV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  requestNonce:     32 bytes
  requestCommitment:32 bytes
  snapshotRevision:u64
  entriesCommitment:32 bytes
  nextCursor:       optional opaque bytes[0..128]
}RelayResultBindingV1=InboxReadV1�InboxReadV1�InboxReadV1 {
  version:          u8 = 1
  physicalTopic:    32 bytes
  cursor:           opaque bounded bytes
  limit:            u16
  clientNonce:      32 bytes
  admission:        optional AdmissionV1
}AdmissionV1>InboxReceiptV1��InboxReceiptV1�hInboxReceiptV1 {
  version:          u8 = 1
  relayBinding:     RelayResultBindingV1
  topicCommitment:  BLAKE2b-256(physicalTopic)
  stateRevision:    u64
  leaseClass:       u8
  leaseEpoch:       u32
  requestNonce:     32 bytes
  requestCommitment:32 bytes
  result:           u8             // 1 created, 2 renewed, 3 closed
  signature:        64 bytes
}RelayResultBindingV1?InboxWatchV1�InboxWatchV1�InboxWatchV1 {
  version:          u8 = 1
  physicalTopic:    32 bytes
  afterRevision:    u64
  limit:            u16
  maxWaitMillis:    u16            // 1..30000
  clientNonce:      32 bytes
  admission:        AdmissionV1
}AdmissionV1@OperationProfileV1�_OperationProfileV1�8OperationProfileV1 { // ABI-registry metadata, not sent in each request
  familyId:              u8
  operationId:           u8
  requestSchemaId:       u16
  resultSchemaId:        u16 // zero only for kind-4-only stream verbs
  allowedRequestKindBits:u8
  allowedResultKindBits: u8
  streamTransition:      u8 // 0 unary, 1 core-child, 2 forward-open, 3 forward-active
  maxRequestBodyBytes:   u32
  maxResultBodyBytes:    u32
  admissionMode:         u8 // 0 none, 1 optional, 2 required
  costClassRuleId:       u16 // zero only when admissionMode=0
  requestCommitmentDomainId:u16 // zero only when no request commitment exists
  resultSignatureDomainId:u16   // zero when transport/authentication is sufficient
  errorProfileId:        u8 // 1 = canonical BlindErrorV1 precedence/mapping
  transportSupportBits:  u16
}BlindErrorV1AProtocolProfileV1�ProtocolProfileV1�ProtocolProfileV1 {
  protocolId:       u16     // enum below
  major:            u16
  minor:            u16
  featureBits:      u64
  profileHash:      32 bytes // exact protocol-specific schemas/vectors/dependency profile
}BProveCellResultV1�ProveCellResultV1�ProveCellResultV1 {
  version:         u8 = 1
  receipt:         BlindReceiptV1
  sizeClass:       u8
  cellBlob:        exact bytes selected by sizeClass
}BlindReceiptV1CProveCellV1�ProveCellV1�ProveCellV1 {
  version:         u8 = 1
  storageSlot:     32 bytes
  clientNonce:     32 bytes
  admission:       optional AdmissionV1
}AdmissionV1D	PutCellV1��	PutCellV1��PutCellV1 {
  version:         u8 = 1
  storageSlot:     32 bytes
  allocationEpoch: u32
  sizeClass:       u8
  leaseClass:      u8
  clientNonce:     32 bytes
  createPublicKey: 32 bytes
  renewPublicKey:  32 bytes
  dropPublicKey:   32 bytes
  declaredBlobHash:32 bytes
  createSignature:64 bytes
  admission:       AdmissionV1
  cellBlob:        exact bytes selected by sizeClass
}AdmissionV1ERelayIdentityTransitionV1��RelayIdentityTransitionV1�{RelayIdentityTransitionV1 {
  version:          u8 = 1
  oldRelayKey:      32 bytes
  newRelayKey:      32 bytes
  oldIdentitySequence:u64
  newIdentitySequence:u64       // exactly old + 1
  validFromEpoch:   u32
  reasonCode:       u8          // generic rotation/compromise/recovery enum
  transitionNonce:  32 bytes
  oldSignature:     64 bytes
  newSignature:     64 bytes
}FRelayResultBindingV1�RelayResultBindingV1��RelayResultBindingV1 { // nested in every persistent signed operation result
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 random nonzero bytes
  descriptorSequence:    u64
  descriptorHash:        32 bytes
  durabilityProfileId:   u8
  durabilityContinuityHash:32 bytes
  durabilityProfileHash: 32 bytes
  restoreEvidenceHeadSequence:u64
  restoreEvidenceHeadHash:32 bytes
  externalCommitWitness: optional BlindExternalCommitWitnessV1
}BlindExternalCommitWitnessV1GRenewCellV1��RenewCellV1�RenewCellV1 {
  version:         u8 = 1
  storageSlot:     32 bytes
  expectedRevision:u64
  expectedLeaseEpoch:u32
  leaseClass:      u8
  clientNonce:     32 bytes
  admission:       AdmissionV1
  signature:       64 bytes
}AdmissionV1HSchemaCatalogEntryV1�SchemaCatalogEntryV1��SchemaCatalogEntryV1 {
  category:             u8 // 1 WIRE, 2 EVIDENCE, 3 CLIENT_EXAMPLE, 4 INTERNAL_STORE, 5 PRIVATE_IPC
  categoryLocalSchemaId:u16
  schemaName:           canonical ASCII bytes[1..96]
  canonicalSchemaBytes: bounded bytes[1..65535]
}ITransportEndpointV1��TransportEndpointV1��TransportEndpointV1 {
  endpointId:       u8      // unique within this descriptor, 1..255
  transportId:      u8      // enum below
  transportProfileHash:32 bytes
  roleBits:         u16     // generic infrastructure roles only
  privacyProfileBits:u16    // routes this endpoint can participate in
  canonicalUrl:     UTF-8 bytes[1..512]
  endpointKey:      optional 32 bytes
  envelopeClassBits:u16     // supported BlindOuterEnvelope classes
  wireClassBits:    u8      // supported Noise record classes; zero if not streaming
  maxStreams:       u16     // 0 for request/response-only endpoint
  auxiliaryUrl:     optional UTF-8 bytes[1..512]
  auxiliaryHash:    optional 32 bytes
}BlindArtifactFileInventoryV1�BlindArtifactFileInventoryV1��BlindArtifactFileInventoryV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  files:                      sorted array[1..65535] of {
                                componentId: u8, // 0 packaging, 1 edge, 2 daemon
                                path: canonical UTF-8 bytes[1..512],
                                mode: u16,
                                byteLength: u64,
                                contentHash: 32 bytes
                              }
}"BlindExecutableEntrypointCatalogV1�~"BlindExecutableEntrypointCatalogV1�TBlindExecutableEntrypointCatalogV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  launchTopologyHash:         32 bytes
  entries:                    ordered array[2..2] of {
                                componentId: u8,
                                componentArtifactHash: 32 bytes,
                                entrypointPath: canonical UTF-8 bytes[1..512],
                                entrypointContentHash: 32 bytes,
                                argvPrefix: ordered array[1..16] of canonical UTF-8 bytes[1..512]
                              }
}BlindLaunchTopologyV1�TBlindLaunchTopologyV1�7BlindLaunchTopologyV1 { // detached, release-signed
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  privateIpcFormatHash:       32 bytes
  privateIpcVectorSetHash:    32 bytes
  components:                 ordered array[2..2] of {
                                componentId: u8, // 1 BLIND_EDGE, 2 BLIND_DAEMON
                                componentArtifactHash: 32 bytes,
                                entrypointPath: canonical UTF-8 bytes[1..512],
                                entrypointContentHash: 32 bytes,
                                serviceUnitPath: canonical UTF-8 bytes[1..512],
                                serviceUnitContentHash: 32 bytes,
                                uid: u32, gid: u32,
                                readOnlyMounts: sorted array[0..32] of canonical UTF-8 bytes[1..512],
                                writableMounts: sorted array[0..8] of canonical UTF-8 bytes[1..512],
                                publicListenerFamilyBits: u8,
                                allowedChildEntrypointHashes: sorted array[0..8] of 32 bytes
                              }
  ipcUnarySocketPath:         canonical absolute UTF-8 bytes[1..512]
  ipcStreamSocketPath:        canonical absolute UTF-8 bytes[1..512]
  ipcOwnerUid:                u32
  ipcPeerUid:                 u32
  ipcGroupGid:                u32
  ipcMode:                    u16 = 0x01b0 // POSIX 0660
  launcherKind:               u8 // 1 OCI Compose, 2 systemd
  defaultCommand:             ordered array[1..32] of canonical UTF-8 bytes[1..512]
  initializers:               ordered array[1..1] of {
                                initializerId: u8,
                                componentArtifactHash: 32 bytes,
                                argv: ordered array[1..32] of canonical UTF-8 bytes[1..512],
                                uid: u32, gid: u32,
                                capabilityBits: u64,
                                networkDisabled: u8 = 1,
                                rootFilesystemReadOnly: u8 = 1,
                                noNewPrivileges: u8 = 1,
                                maxPids: u16, // 1..32
                                writableMounts: sorted array[1..8] of canonical UTF-8 bytes[1..512],
                                targets: ordered array[2..2] of {
                                  targetKind: u8, // 1 RUNTIME_ROOT, 2 DATA_ROOT
                                  path: canonical absolute UTF-8 bytes[1..512],
                                  finalUid: u32, finalGid: u32,
                                  finalMode: u16
                                },
                                maxRuntimeMillis: u32 // 1..60000
                              }
  releaseSignerPublicKey:     32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}BlindListenerCatalogV1�NBlindListenerCatalogV1�BlindListenerCatalogV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  launchTopologyHash:         32 bytes
  observedFromUnixMillis:     u64
  observedThroughUnixMillis:  u64
  listeners:                  sorted array[1..64] of BlindListenerEntryV1
}BlindListenerEntryV1BlindListenerEntryV1�{BlindListenerEntryV1�_BlindListenerEntryV1 {
  componentId:                u8
  listenerClass:              u8 // 1 PUBLIC, 2 PRIVATE_UNIX
  transportId:                u8 // public registry 1..9; private IPC 0
  endpointId:                 u8
  addressOrSocket:            canonical UTF-8 bytes[1..512]
  port:                       u16
  ownerUid:                   u32
} BlindProcessInspectionEvidenceV1�
 BlindProcessInspectionEvidenceV1��	BlindProcessInspectionEvidenceV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  launchTopologyHash:         32 bytes
  observedFromUnixMillis:     u64
  observedThroughUnixMillis:  u64
  completedInitializers:      ordered array[1..1] of {
                                initializerId: u8,
                                componentArtifactHash: 32 bytes,
                                argv: ordered array[1..32] of canonical UTF-8 bytes[1..512],
                                uid: u32, gid: u32,
                                startedUnixMillis: u64,
                                endedUnixMillis: u64,
                                exitCode: u8,
                                observedCapabilityBits: u64,
                                networkDisabled: u8,
                                rootFilesystemReadOnly: u8,
                                noNewPrivileges: u8,
                                pidsLimit: u16,
                                observedPeakPids: u16,
                                writableMounts: sorted array[1..8] of canonical UTF-8 bytes[1..512],
                                targetsAfter: ordered array[2..2] of {
                                  targetKind: u8,
                                  path: canonical absolute UTF-8 bytes[1..512],
                                  finalUid: u32, finalGid: u32,
                                  finalMode: u16,
                                  inodeKind: u8 = 1, // DIRECTORY
                                  symlinkFree: u8 = 1
                                }
                              }
  processes:                  sorted array[2..16] of {
                                processOrdinal: u16,
                                componentId: u8,
                                parentProcessOrdinal: optional u16,
                                uid: u32, gid: u32,
                                executablePath: canonical UTF-8 bytes[1..512],
                                executableContentHash: 32 bytes,
                                argv: ordered array[1..32] of canonical UTF-8 bytes[1..512],
                                environmentNames: sorted array[0..256] of canonical ASCII bytes[1..128],
                                mounts: sorted array[0..64] of {
                                  path: canonical UTF-8 bytes[1..512],
                                  accessMode: u8 // 1 read-only, 2 read-write
                                }
                              }
} BlindProductDistributionBundleV1�( BlindProductDistributionBundleV1�BlindProductDistributionBundleV1 { // releaseArtifactBytes; streaming decode
  version:          u8 = 1
  artifactFormat:   u8 // 1 deterministic OCI components, 2 signed native components
  edgeComponentDistributionBytes:bytes[1..4294967295]
  daemonComponentDistributionBytes:bytes[1..4294967295]
  packagingFiles:   sorted array[2..256] of {
                      path: canonical UTF-8 bytes[1..512],
                      mode: u16,
                      fileBytes: bytes[1..16777216]
                    }
}BlindProductIsolationEvidenceV1��BlindProductIsolationEvidenceV1��BlindProductIsolationEvidenceV1 {
  version:                       u8 = 1
  productMode:                   u8 = 1 // BLIND_APPLICATION_SUBSTRATE_V1
  buildArtifactHash:             32 bytes
  launchTopologyHash:            32 bytes
  artifactFileInventoryHash:     32 bytes
  executableEntryPointHash:      32 bytes
  runtimeImportGraphHash:        32 bytes
  listenerCatalogHash:           32 bytes
  forbiddenComponentPresenceBits:u16 = 0
  routeAbsenceEvidenceHash:      32 bytes
  processInspectionEvidenceHash:32 bytes
  isolationReportBundleHash:     32 bytes
  issuedUnixMillis:              u64
  evidenceSignerPublicKey:       32-byte Ed25519 public key
  signature:                     64-byte Ed25519 signature
}	#BlindProductIsolationReportBundleV1�.#BlindProductIsolationReportBundleV1�UBlindProductIsolationReportBundleV1 {
  version:                    u8 = 1
  artifactFileInventoryBytes:canonical BlindArtifactFileInventoryV1 bytes[1..50331648]
  executableEntrypointBytes:  canonical BlindExecutableEntrypointCatalogV1 bytes[1..65536]
  runtimeImportGraphBytes:    canonical BlindRuntimeImportGraphV1 bytes[1..50331648]
  listenerCatalogBytes:       canonical BlindListenerCatalogV1 bytes[1..1048576]
  routeAbsenceEvidenceBytes:  canonical BlindRouteAbsenceEvidenceV1 bytes[1..1048576]
  processInspectionBytes:     canonical BlindProcessInspectionEvidenceV1 bytes[1..4194304]
}BlindArtifactFileInventoryV1"BlindExecutableEntrypointCatalogV1BlindListenerCatalogV1 BlindProcessInspectionEvidenceV1BlindRouteAbsenceEvidenceV1BlindRuntimeImportGraphV1
BlindReleaseEvidenceBundleV1�GBlindReleaseEvidenceBundleV1�nBlindReleaseEvidenceBundleV1 { // canonical bytes <= 536870912
  version:                    u8 = 1
  buildManifestBytes:         canonical complete signed BuildManifestV1 bytes[1..50331648]
  launchTopologyBytes:        canonical complete signed BlindLaunchTopologyV1 bytes[1..1048576]
  isolationEvidenceBytes:     canonical complete signed BlindProductIsolationEvidenceV1 bytes[1..65536]
  isolationReportBundleBytes: canonical BlindProductIsolationReportBundleV1 bytes[1..134217728]
  releaseSupportHorizonBytes: canonical complete signed BlindReleaseSupportHorizonV1 bytes[1..1048576]
  privateIpcRegistryBytes:    bounded canonical bytes[1..1048576]
  privateIpcVectorManifestBytes:bounded canonical bytes[1..1048576]
  releaseCompatibilityVectorManifestBytes:sorted array[0..4] of bounded canonical bytes[1..1048576]
  toolchainManifestBytes:     canonical ToolchainManifestV1 bytes[1..1048576]
  reproductionEnvironmentBytes:sorted array[1..16] of canonical ReproductionEnvironmentV1 bytes[1..1048576]
  dependencyLockBytes:        bounded bytes[1..16777216]
  sbomBytes:                  optional bounded bytes[1..33554432]
}BlindLaunchTopologyV1BlindProductIsolationEvidenceV1#BlindProductIsolationReportBundleV1BlindReleaseSupportHorizonV1BuildManifestV1ReproductionEnvironmentV1ToolchainManifestV1BlindReleaseSupportHorizonV1�eBlindReleaseSupportHorizonV1�ABlindReleaseSupportHorizonV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  specHash:                   32 bytes
  abiHash:                    32 bytes
  vectorSetHash:              32 bytes
  evidenceFormatHash:         32 bytes
  evidenceVectorSetHash:      32 bytes
  storeFormatHash:            32 bytes
  storeVectorSetHash:         32 bytes
  privateIpcFormatHash:       32 bytes
  privateIpcVectorSetHash:    32 bytes
  issuedUnixMillis:           u64
  activationNotBeforeUnixMillis:u64
  fullSupportThroughUnixMillis:u64
  upgradeMode:                u8 // 1 FENCED_BLUE_GREEN, 2 IN_PLACE_FORMAT_COMPATIBLE
  predecessors:               sorted array[0..4] of {
                                buildArtifactHash: 32 bytes,
                                buildManifestHash: 32 bytes,
                                abiHash: 32 bytes,
                                storeFormatHash: 32 bytes,
                                privateIpcFormatHash: 32 bytes,
                                oldAbiServeThroughUnixMillis: u64,
                                rollbackThroughUnixMillis: u64,
                                compatibilityVectorSetHash: 32 bytes
                              }
  releaseSignerPublicKey:     32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}BlindRouteAbsenceEvidenceV1�zBlindRouteAbsenceEvidenceV1�WBlindRouteAbsenceEvidenceV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  abiHash:                    32 bytes
  evidenceVectorSetHash:      32 bytes
  allowedRoutes:              sorted array[1..16] of {
                                method: canonical ASCII bytes[1..16],
                                path: canonical ASCII bytes[1..256],
                                familyId: u8
                              }
  negativeProbes:             sorted array[1..256] of {
                                method: canonical ASCII bytes[1..16],
                                path: canonical ASCII bytes[1..256],
                                expectedStatus: u16,
                                observedStatus: u16,
                                responseBodyBytes: bytes[0..4096]
                              }
}
BlindRuntimeBoundaryEvidenceV1�s	BlindRuntimeBoundaryEvidenceV1�8	BlindRuntimeBoundaryEvidenceV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  buildManifestHash:          32 bytes
  launchTopologyHash:         32 bytes
  componentProcesses:         ordered array[2..2] of {
                                componentId: u8,
                                entrypointPath: canonical UTF-8 bytes[1..512],
                                entrypointBytes: bounded bytes[1..16777216],
                                serviceUnitPath: canonical UTF-8 bytes[1..512],
                                serviceUnitBytes: bounded bytes[1..1048576],
                                uid: u32, gid: u32
                              }
  listeners:                  sorted array[1..64] of BlindListenerEntryV1
  descriptorProtocolId:       canonical ASCII bytes[1..64]
  descriptorSigningPublicKey: 32-byte Ed25519 public key
  discoveryTopic:             32 bytes
  publicCredentials:          sorted array[1..32] of {
                                credentialClass: u8,
                                canonicalPublicBytes: bounded bytes[1..65535]
                              }
  storageRoots:               sorted array[1..16] of {
                                componentId: u8,
                                path: canonical UTF-8 bytes[1..512],
                                rootClass: canonical ASCII bytes[1..64],
                                encryptionPublicKey: optional 32-byte public key
                              }
  releaseChannelUrl:          canonical HTTPS URL bytes[1..512]
  releaseChannelPublicKey:    32-byte Ed25519 public key
  observability:              ordered array[2..2] of {
                                componentId: u8,
                                logSinkId: canonical ASCII bytes[1..128],
                                logNamespace: canonical ASCII bytes[1..128],
                                metricSinkId: canonical ASCII bytes[1..128],
                                metricNamespace: canonical ASCII bytes[1..128]
                              }
  deploymentId:              32 random nonzero bytes
  observedFromUnixMillis:     u64
  observedThroughUnixMillis:  u64
  issuedUnixMillis:           u64
  expiresUnixMillis:          u64
  evidenceSignerPublicKey:    32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}BlindListenerEntryV1BlindRuntimeImportGraphV1�TBlindRuntimeImportGraphV1�3BlindRuntimeImportGraphV1 {
  version:                    u8 = 1
  buildArtifactHash:          32 bytes
  entrypointNodeIds:          ordered array[2..2] of 32 bytes
  nodes:                      sorted array[2..65535] of {
                                nodeId: 32 bytes,
                                componentId: u8,
                                path: canonical UTF-8 bytes[1..512],
                                contentHash: 32 bytes,
                                importedNodeIds: sorted array[0..4096] of 32 bytes
                              }
}BuildInputV1�BuildInputV1wBuildInputV1 {
  path:             canonical UTF-8 bytes[1..512]
  byteLength:       u64
  contentHash:      32 bytes
}BuildManifestV1��BuildManifestV1�wBuildManifestV1 { // detached sidecar; never inside releaseArtifactBytes
  version:          u8 = 1
  productMode:      u8 = 1 // BLIND_APPLICATION_SUBSTRATE_V1, no other v1 value
  implementationId:canonical ASCII bytes[1..64]
  implementationVersion:canonical ASCII bytes[1..64]
  sourceRevision:  canonical UTF-8 bytes[1..256]
  sourceTreeHash:  32 bytes
  implementationSpecHash:32 bytes
  specHash:         32 bytes
  abiHash:          32 bytes
  vectorSetHash:    32 bytes
  evidenceFormatHash:32 bytes
  evidenceVectorSetHash:32 bytes
  storeFormatHash:  32 bytes
  storeVectorSetHash:32 bytes
  privateIpcFormatHash:32 bytes
  privateIpcVectorSetHash:32 bytes
  toolchainManifestHash:32 bytes
  dependencyLockHash:32 bytes
  sbomHash:         optional 32 bytes
  artifactFormat:   u8 // 1 deterministic OCI bundle, 2 signed native bundle
  inputs:           sorted array[1..65535] of {
                      path: canonical UTF-8 bytes[1..512],
                      byteLength: u64,
                      contentHash: 32 bytes
                    }
  buildArtifactHash:32 bytes
  launchTopologyHash:32 bytes
  releaseSupportHorizonHash:32 bytes
  productIsolationEvidenceHash:32 bytes
  reproductionPolicyId:u8 = 1 // DISTINCT_RELEASE_SIGNER_KEY_V1
  reproductions:    sorted array[1..16] of {
                      builderPublicKey: 32-byte Ed25519 public key,
                      environmentHash: 32 bytes,
                      reproducedArtifactHash: 32 bytes,
                      signature: 64-byte Ed25519 signature
                    }
  releaseSignerPublicKey:32-byte Ed25519 public key
  releaseSignature:64-byte Ed25519 signature
}BuildReproductionAttestationV1�BuildReproductionAttestationV1�BuildReproductionAttestationV1 {
  version:          u8 = 1
  builderPublicKey: 32-byte Ed25519 public key
  environmentHash: 32 bytes
  unsignedBuildCommitment:32 bytes
  reproducedArtifactHash:32 bytes
}+HiveRelayCompatibilityAuthorityTransitionV1��+HiveRelayCompatibilityAuthorityTransitionV1�gHiveRelayCompatibilityAuthorityTransitionV1 {
  version:                     u8 = 1
  compatibilityProductId:      canonical ASCII bytes[1..128]
  sunsetChainGenesisHash:      32 bytes
  sunsetChainId:               32 bytes
  successorSpecHash:           32 bytes
  successorAbiHash:            32 bytes
  successorVectorSetHash:      32 bytes
  previousSunsetHash:          32 bytes
  previousSunsetSequence:      u64
  nextSunsetSequence:          u64
  previousAuthoritySequence:   u64
  nextAuthoritySequence:       u64
  previousPublicKey:           32-byte Ed25519 public key
  nextPublicKey:               32-byte Ed25519 public key
  previousKeyId:               32 bytes
  nextKeyId:                   32 bytes
  validFromSunsetSequence:     u64
  previousKeySignature:        64-byte Ed25519 signature
  nextKeySignature:            64-byte Ed25519 signature
}%HiveRelayCompatibilityBuildManifestV1�-%HiveRelayCompatibilityBuildManifestV1��HiveRelayCompatibilityBuildManifestV1 {
  version:                      u8 = 1
  productMode:                  u8 = 2 // LEGACY_COMPATIBILITY_V1
  compatibilityProductId:       canonical ASCII bytes[1..128]
  implementationVersion:        canonical ASCII bytes[1..64]
  sourceRevision:               canonical UTF-8 bytes[1..256]
  sourceTreeHash:               32 bytes
  inputs:                       sorted array[1..65535] of BuildInputV1
  toolchainManifestHash:        32 bytes
  dependencyLockHash:           32 bytes
  compatibilityArtifactFormat: u8 // 1 deterministic OCI bundle, 2 signed native bundle
  compatibilityArtifactUrl:     canonical HTTPS URL bytes[1..512]
  compatibilityArtifactHash:    32 bytes
  sunsetChainGenesisHash:       32 bytes
  sunsetGenesisUrl:              canonical HTTPS URL bytes[1..512]
  sunsetLatestUrl:              canonical HTTPS URL bytes[1..512]
  releaseSignerPublicKey:       32-byte Ed25519 public key
  releaseSignature:             64-byte Ed25519 signature
}BuildInputV1/HiveRelayCompatibilityRuntimeBoundaryEvidenceV1��	/HiveRelayCompatibilityRuntimeBoundaryEvidenceV1�.	HiveRelayCompatibilityRuntimeBoundaryEvidenceV1 {
  version:                    u8 = 1
  compatibilityProductId:     canonical ASCII bytes[1..128]
  compatibilityArtifactHash:  32 bytes
  compatibilityBuildManifestHash:32 bytes
  entrypointPath:             canonical UTF-8 bytes[1..512]
  entrypointBytes:            bounded bytes[1..16777216]
  serviceUnitPath:            canonical UTF-8 bytes[1..512]
  serviceUnitBytes:           bounded bytes[1..1048576]
  processUid:                 u32
  processGid:                 u32
  processArgv:                ordered array[1..64] of canonical UTF-8 bytes[1..512]
  listeners:                  sorted array[1..64] of BlindListenerEntryV1
  descriptorProtocolId:       canonical ASCII bytes[1..64]
  descriptorSigningPublicKey: 32-byte public key
  discoveryTopic:             32 bytes
  publicCredentials:          sorted array[1..32] of {
                                credentialClass: u8,
                                canonicalPublicBytes: bounded bytes[1..65535]
                              }
  storageRoots:               sorted array[1..16] of {
                                path: canonical UTF-8 bytes[1..512],
                                rootClass: canonical ASCII bytes[1..64],
                                encryptionPublicKey: optional 32-byte public key
                              }
  releaseChannelUrl:          canonical HTTPS URL bytes[1..512]
  releaseChannelPublicKey:    32-byte Ed25519 public key
  logSinkId:                  canonical ASCII bytes[1..128]
  logNamespace:               canonical ASCII bytes[1..128]
  metricSinkId:               canonical ASCII bytes[1..128]
  metricNamespace:            canonical ASCII bytes[1..128]
  deploymentId:              32 random nonzero bytes
  observedFromUnixMillis:     u64
  observedThroughUnixMillis:  u64
  successorBuildArtifactHash: 32 bytes
  successorBuildManifestHash: 32 bytes
  successorBuildManifestBytes:canonical complete signed BuildManifestV1 bytes[1..50331648]
  successorBlindRuntimeBoundaryEvidenceBytes:canonical complete signed BlindRuntimeBoundaryEvidenceV1 bytes[1..50331648]
  disjointBoundaryBits:       u16
  issuedUnixMillis:           u64
  expiresUnixMillis:          u64
  evidenceSignerPublicKey:    32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}BlindListenerEntryV1BlindRuntimeBoundaryEvidenceV1BuildManifestV1%HiveRelayCompatibilitySunsetGenesisV1�!%HiveRelayCompatibilitySunsetGenesisV1��HiveRelayCompatibilitySunsetGenesisV1 {
  version:                    u8 = 1
  compatibilityProductId:     canonical ASCII bytes[1..128]
  sunsetChainId:              32 random nonzero bytes
  sunsetSequence:             u64 = 0
  successorSpecHash:          32 bytes
  successorAbiHash:           32 bytes
  successorVectorSetHash:     32 bytes
  genesisAuthoritySequence:   u64
  genesisAuthorityPublicKey:  32-byte Ed25519 public key
  genesisAuthorityKeyId:      32 bytes
  sunsetHistoryBaseUrl:       canonical HTTPS URL bytes[1..512]
  issuedUnixMillis:           u64
  lastWriteUnixMillis:        u64
  lastReadUnixMillis:         u64
  releaseChannelPublicKey:    32-byte Ed25519 public key
  signature:                  64-byte Ed25519 signature
}"HiveRelayCompatibilitySunsetHeadV1��"HiveRelayCompatibilitySunsetHeadV1��HiveRelayCompatibilitySunsetHeadV1 {
  version:                      u8 = 1
  compatibilityProductId:       canonical ASCII bytes[1..128]
  sunsetChainGenesisHash:       32 bytes
  sunsetChainId:                32 bytes
  sunsetSequence:               u64
  sunsetHash:                   32 bytes
  compatibilityBuildManifestHash:32 bytes
  headLeaseSlot:                u64 // floor(notBeforeUnixMillis / 300000)
  issuedUnixMillis:             u64
  notBeforeUnixMillis:          u64
  expiresUnixMillis:            u64
  releaseAuthoritySequence:     u64
  releaseAuthorityKeyId:        32 bytes
  signature:                    64-byte Ed25519 signature
}$HiveRelayLegacyCompatibilitySunsetV1�_$HiveRelayLegacyCompatibilitySunsetV1�3HiveRelayLegacyCompatibilitySunsetV1 {
  version:                      u8 = 1
  compatibilityProductId:       canonical ASCII bytes[1..128]
  sunsetChainGenesisHash:       32 bytes
  sunsetChainId:                32 bytes
  sunsetSequence:               u64
  compatibilityArtifactUrl:     canonical HTTPS URL bytes[1..512]
  compatibilityArtifactHash:    32 bytes
  compatibilityBuildManifestUrl:canonical HTTPS URL bytes[1..512]
  compatibilityBuildManifestHash:32 bytes
  compatibilityRuntimeBoundaryEvidenceUrl:canonical HTTPS URL bytes[1..512]
  compatibilityRuntimeBoundaryEvidenceHash:32 bytes
  successorSpecHash:            32 bytes
  successorAbiHash:             32 bytes
  successorVectorSetHash:       32 bytes
  successorBuildArtifactHash:   32 bytes
  successorBuildManifestHash:   32 bytes
  successorLaunchTopologyHash:  32 bytes
  successorIsolationEvidenceHash:32 bytes
  successorRuntimeBoundaryEvidenceHash:32 bytes
  issuedUnixMillis:             u64
  lastWriteUnixMillis:          u64
  lastReadUnixMillis:           u64
  previousSunsetHash:           32 bytes
  releaseAuthoritySequence:     u64
  releaseAuthorityPublicKey:    32-byte Ed25519 public key
  releaseAuthorityKeyId:        32 bytes
  authorityTransitionHash:      optional 32 bytes
  signature:                    64-byte Ed25519 signature
}ProtocolProfileArtifactV1�!ProtocolProfileArtifactV1�ProtocolProfileArtifactV1 {
  version:          u8 = 1
  protocolId:       u16
  major:            u16
  minor:            u16
  featureBits:      u64
  wireSchemaSetHash:32 bytes
  dependencyManifestHash:32 bytes
  interoperabilityVectorSetHash:32 bytes
}ReproductionEnvironmentV1��ReproductionEnvironmentV1��ReproductionEnvironmentV1 {
  version:          u8 = 1
  os:               canonical ASCII bytes[1..64]
  architecture:     canonical ASCII bytes[1..64]
  containerOrVmHash:32 bytes
  sourceDateEpoch:  u64
  locale:           canonical ASCII bytes[1..64]
  timezone:         canonical ASCII bytes[1..64]
  variables:        sorted array[0..256] of {
                      name: canonical ASCII bytes[1..128],
                      valueHash: 32 bytes
                    }
}ToolchainEntryV1�ToolchainEntryV1�ToolchainEntryV1 {
  name:             canonical ASCII bytes[1..64]
  version:          canonical ASCII bytes[1..128]
  distributionHash:32 bytes
}ToolchainManifestV1�ToolchainManifestV1oToolchainManifestV1 {
  version:          u8 = 1
  entries:          sorted array[1..256] of ToolchainEntryV1
}ToolchainEntryV1TransportProfileArtifactV1��TransportProfileArtifactV1��TransportProfileArtifactV1 {
  version:          u8 = 1
  transportId:      u8
  profileName:      canonical ASCII bytes[1..64]
  major:            u16
  minor:            u16
  exporterId:       u8 // 0 NONE, 1 NOISE_HANDSHAKE_HASH_BLAKE2B
  controlChannelIdType:u8 // 0 NONE, 1 NONZERO_U64BE
  handshakeProfileHash:32 bytes
  dependencyManifestHash:32 bytes
  interoperabilityVectorSetHash:32 bytes
}BlindCoreReadCapV1�MBlindCoreReadCapV1�3BlindCoreReadCapV1 {
  version:          u8 = 1
  corePublicKey:    32 bytes       // stable opaque transport identity
  blockEncryptionKey:32 bytes      // never sent to blind peer
  witnessedFork:    u64
  witnessedLength:  u64
  witnessedSignedHead:bounded canonical Hypercore proof, maximum 4096 bytes
}
CellBlobV1�
CellBlobV1�CellBlobV1 {
  formatVersion: u8 = 1
  nonce:         12 bytes
  sealed:        sizeClass - 13 bytes, including the 16-byte GCM tag
}OpaqueChainCheckpointV1�{OpaqueChainCheckpointV1�NOpaqueChainCheckpointV1 {
  version:                 u8 = 1
  coveredFrontier:         sorted array[1..1024] of
                           { chainId: 32 bytes, sequence: u64, frameHash: 32 bytes }
  opaqueStateCommitment:   32 bytes
  snapshotPayloadHash:     32 bytes
  snapshotReadCaps:        sorted array[1..16] of ReadCellCapV1
}
ReadCellCapV1OpaqueChainFrameV1��OpaqueChainFrameV1��OpaqueChainFrameV1 {
  version:                 u8 = 1
  chainId:                 32 random bytes
  sequence:                u64
  previousFrameHash:       optional 32 bytes
  transportVerifyKey:      32 bytes
  opaquePayloads:          array[0..256] of bounded bytes, each <= 256 KiB
  nextReadCellCaps:         sorted array[0..16] of ReadCellCapV1
  checkpoint:              optional OpaqueChainCheckpointV1
  transportSignature:      64 bytes
}OpaqueChainCheckpointV1
ReadCellCapV1
ReadCellCapV1�
ReadCellCapV1�ReadCellCapV1 {
  version:       u8 = 1
  relayPublicKey:32 bytes
  storageSlot:   32 bytes
  cellKey:       32 bytes
  sizeClass:     u8
  expectedCellBlobHash: optional 32 bytes
}WriteCellCapV1�WriteCellCapV1�WriteCellCapV1 {
  readCap:         ReadCellCapV1
  allocationEpoch: u32
  createPrivateKey:32 bytes
  renewPrivateKey: 32 bytes
  dropPrivateKey:  32 bytes
}
ReadCellCapV1*BlindCellAtomicCommittedPutSpendSnapshotV1�3*BlindCellAtomicCommittedPutSpendSnapshotV1��BlindCellAtomicCommittedPutSpendSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  storageSlot:           32 nonzero bytes
  allocationEpoch:       u32
  sizeClass:             u8[1..5]
  leaseClass:            u8[1..4]
  declaredBlobHash:      32 nonzero bytes
  createPublicKey:       32 nonzero bytes
  renewPublicKey:        32 nonzero bytes
  dropPublicKey:         32 nonzero bytes
  allocationCommitment:  32 nonzero bytes
  profileId:             u16[1..65535]
  preparedAdmissionBytes:bounded canonical BlindPreparedAdmissionStoreV1 bytes[1..17408]
  resultBindingBytes:    canonical profile-1 result-binding bytes[1..1024]
  declaredBytes:         u32
  resultIdentity:        32 nonzero bytes
  committedEpoch:        u32
  resultCell:            BlindCellHistoricalResultSnapshotV1
}#BlindCellHistoricalResultSnapshotV1BlindPreparedAdmissionStoreV1&BlindCellChargedReadPinEntrySnapshotV1��&BlindCellChargedReadPinEntrySnapshotV1��BlindCellChargedReadPinEntrySnapshotV1 {
  storageSlot:           32 nonzero bytes
  present:               u8[0..1]
  sizeClass:             u8[0..5]
  allocationEpoch:       u32
  leaseClass:            u8[0..4]
  leaseEpoch:            u32
  stateRevision:         u64
  policyRevision:        u64
  cellBlobHash:          32 bytes
  allocationCommitment:  32 bytes
  // absent entries require the exact all-zero state after storageSlot
}#BlindCellChargedReadRetrySnapshotV1��#BlindCellChargedReadRetrySnapshotV1�@BlindCellChargedReadRetrySnapshotV1 {
  version:               u8 = 1
  lifecycleState:        u8[1..3] // 1 pinned, 2 finalized, 3 expired
  operationId:           u8 in {2 GET,5 PROVE,6 BATCH_GET}
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  preparedAdmissionBytes:optional bounded canonical BlindPreparedAdmissionStoreV1 bytes[1..17408]
  resultBindingBytes:    optional canonical profile-1 result-binding bytes[1..1024]
  receiptEpoch:          optional u32
  retryExpiresUnixMillis:u64 nonzero
  entries:               optional array[1..64] of BlindCellChargedReadPinEntrySnapshotV1
  resultCommitment:      optional 32 nonzero bytes
  committedEpoch:        u32
  terminalEpoch:         optional u32
}&BlindCellChargedReadPinEntrySnapshotV1BlindPreparedAdmissionStoreV1$BlindCellCommittedPutSpendSnapshotV1��$BlindCellCommittedPutSpendSnapshotV1�&BlindCellCommittedPutSpendSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  storageSlot:           32 nonzero bytes
  allocationEpoch:       u32
  sizeClass:             u8[1..5]
  leaseClass:            u8[1..4]
  declaredBlobHash:      32 nonzero bytes
  createPublicKey:       32 nonzero bytes
  renewPublicKey:        32 nonzero bytes
  dropPublicKey:         32 nonzero bytes
  allocationCommitment:  32 nonzero bytes
  profileId:             u16[1..65535]
  preparedAdmissionBytes:bounded canonical BlindPreparedAdmissionStoreV1 bytes[1..17408]
  resultBindingBytes:    optional canonical profile-1 result-binding bytes[1..1024]
  declaredBytes:         u32
  deadlineUnixMillis:    u64 nonzero
  remainingAttempts:     u8[0..1]
  reservedEpoch:         u32
  resultIdentity:        32 nonzero bytes
  committedEpoch:        u32
  resultCell:            BlindCellHistoricalResultSnapshotV1
}#BlindCellHistoricalResultSnapshotV1BlindPreparedAdmissionStoreV1&BlindCellCommittedRenewSpendSnapshotV1�@&BlindCellCommittedRenewSpendSnapshotV1��BlindCellCommittedRenewSpendSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  storageSlot:           32 nonzero bytes
  expectedStateRevision: u64
  expectedLeaseEpoch:    u32
  requestedLeaseClass:   u8[1..4]
  profileId:             u16[1..65535]
  preparedAdmissionBytes:bounded canonical BlindPreparedAdmissionStoreV1 bytes[1..17408]
  resultBindingBytes:    optional canonical profile-1 result-binding bytes[1..1024]
  resultIdentity:        32 nonzero bytes
  committedEpoch:        u32
  resultCell:            BlindCellHistoricalResultSnapshotV1
}#BlindCellHistoricalResultSnapshotV1BlindPreparedAdmissionStoreV1 BlindCellControlGlobalSnapshotV1�� BlindCellControlGlobalSnapshotV1��BlindCellControlGlobalSnapshotV1 {
  version:               u8 = 1
  epochFloor:            u32
  clockUnsafe:           u8[0..1]
  recoveryGap:           u8[0..1]
  storedBytes:           u64
  stagingBytes:          u64
  controlBytes:          u64
  tombstoneBytes:        u64
  reservedCells:         u64
  cellCount:             u64
  spendCount:            u64
  commitmentCount:       u64
  requestResultCount:    u64
  chargedReadPinnedCount:u64
  chargedReadFinalizedCount:u64
  chargedReadExpiredCount:u64
  chargedReadPinnedEntryCount:u64
  profileStagingCount:   u32
  integrityEvidenceCount:u32
  controlRecordAccountingBytes:u16 = 512
  tombstoneRecordAccountingBytes:u16 = 512
}#BlindCellHistoricalResultSnapshotV1��#BlindCellHistoricalResultSnapshotV1��BlindCellHistoricalResultSnapshotV1 {
  storageSlot:           32 nonzero bytes
  allocationEpoch:       u32
  sizeClass:             u8[1..5]
  leaseClass:            u8[1..4]
  leaseEpoch:            u32
  stateRevision:         u64
  policyRevision:        u64
  cellBlobHash:          32 nonzero bytes
  allocationCommitment:  32 nonzero bytes
  objectState:           u8[1..2]
  policyState:           u8[1..2]
}$BlindCellIntegrityEvidenceSnapshotV1�$BlindCellIntegrityEvidenceSnapshotV1�BlindCellIntegrityEvidenceSnapshotV1 {
  version:               u8 = 1
  reason:                u8[1..3]
  detectedEpoch:         u32
  evidenceHash:          32 nonzero bytes
}	!BlindCellProfileStagingSnapshotV1�!BlindCellProfileStagingSnapshotV1�BlindCellProfileStagingSnapshotV1 {
  version:               u8 = 1
  profileId:             u16[1..65535]
  stagingBytes:          u64 nonzero
}
BlindCellRecordSnapshotV1��BlindCellRecordSnapshotV1�`BlindCellRecordSnapshotV1 {
  version:               u8 = 1
  storageSlot:           32 nonzero bytes
  allocationEpoch:       u32
  allocationLeaseClass:  u8[1..4]
  sizeClass:             u8[1..5]
  leaseClass:            u8[1..4]
  leaseEpoch:            u32
  stateRevision:         u64
  policyRevision:        u64
  cellBlobHash:          32 nonzero bytes
  blobVirtualBucket:     u16
  blobObjectId:          32 nonzero bytes
  createPublicKey:       32 nonzero bytes
  renewPublicKey:        32 nonzero bytes
  dropPublicKey:         32 nonzero bytes
  allocationCommitment:  32 nonzero bytes
  objectState:           u8[1..2]
  policyState:           u8[1..2]
  tombstoneReason:       optional u8[1..2]
  terminalEpoch:         optional u32
  createSpendTag:        32 nonzero bytes
  resultIdentity:        32 nonzero bytes
  createdEpoch:          u32
} BlindCellRequestResultSnapshotV1� BlindCellRequestResultSnapshotV1��BlindCellRequestResultSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  storageSlot:           32 nonzero bytes
  resultBindingBytes:    optional canonical profile-1 result-binding bytes[1..1024]
  resultIdentity:        32 nonzero bytes
  committedEpoch:        u32
  resultCell:            BlindCellHistoricalResultSnapshotV1
}#BlindCellHistoricalResultSnapshotV1 BlindCellReservedSpendSnapshotV1�� BlindCellReservedSpendSnapshotV1��BlindCellReservedSpendSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  storageSlot:           32 nonzero bytes
  allocationEpoch:       u32
  sizeClass:             u8[1..5]
  leaseClass:            u8[1..4]
  declaredBlobHash:      32 nonzero bytes
  createPublicKey:       32 nonzero bytes
  renewPublicKey:        32 nonzero bytes
  dropPublicKey:         32 nonzero bytes
  allocationCommitment:  32 nonzero bytes
  profileId:             u16[1..65535]
  preparedAdmissionBytes:bounded canonical BlindPreparedAdmissionStoreV1 bytes[1..17408]
  resultBindingBytes:    optional canonical profile-1 result-binding bytes[1..1024]
  declaredBytes:         u32
  deadlineUnixMillis:    u64 nonzero
  remainingAttempts:     u8[0..2]
  reservedEpoch:         u32
}BlindPreparedAdmissionStoreV1
 BlindCellTerminalSpendSnapshotV1�# BlindCellTerminalSpendSnapshotV1��BlindCellTerminalSpendSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  storageSlot:           32 nonzero bytes
  allocationEpoch:       u32
  sizeClass:             u8[1..5]
  leaseClass:            u8[1..4]
  declaredBlobHash:      32 nonzero bytes
  createPublicKey:       32 nonzero bytes
  renewPublicKey:        32 nonzero bytes
  dropPublicKey:         32 nonzero bytes
  allocationCommitment:  32 nonzero bytes
  profileId:             u16[1..65535]
  preparedAdmissionBytes:bounded canonical BlindPreparedAdmissionStoreV1 bytes[1..17408]
  resultBindingBytes:    optional canonical profile-1 result-binding bytes[1..1024]
  declaredBytes:         u32
  deadlineUnixMillis:    u64 nonzero
  remainingAttempts:     u8[0..2]
  reservedEpoch:         u32
  terminalReason:        u8[1..3]
  terminalEpoch:         u32
}BlindPreparedAdmissionStoreV1BlindControlStateSnapshotV1�$BlindControlStateSnapshotV1�BlindControlStateSnapshotV1 { // canonical external control snapshot
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 bytes
  durabilityContinuityHash:32 bytes
  walSequence:           u64
  walHash:               32 bytes
  entries:               sorted array[0..16777216] of {
                           entryKind: u8[1..8],
                           key: bounded bytes[1..256],
                           value: bounded bytes[0..65535]
                         }
} BlindCoreControlGlobalSnapshotV1�� BlindCoreControlGlobalSnapshotV1��BlindCoreControlGlobalSnapshotV1 {
  version:               u8 = 1
  epochFloor:            u32
  clockUnsafe:           u8[0..1]
  recordCount:           u64
  reservedCount:         u64
  liveCount:             u64
  terminalCount:         u64
  spendIndexCount:       u64
  logicalIndexCount:     u64
  channelIndexCount:     u64
  resultCount:           u64
  snapshotRecordBytes:   u64
}'BlindCoreOpenReplicationRetrySnapshotV1�'BlindCoreOpenReplicationRetrySnapshotV1��BlindCoreOpenReplicationRetrySnapshotV1 {
  version:               u8 = 1
  lifecycleState:        u8[1..3] // 1 RESERVED, 2 LIVE, 3 TERMINAL
  logicalRetryKey:       32 nonzero bytes
  spendTag:              bounded bytes[1..128], nonzero
  requestCommitment:     32 nonzero bytes
  wireProfileHash:       32 nonzero bytes
  sessionClass:          u8[1..3]
  clientNonce:           32 bytes
  parentSessionId:       bounded bytes[1..256], nonzero
  controlChannelId:      u64 nonzero
  parentChannelBinding:  32 nonzero bytes
  streamId:              u64 nonzero
  maxSessionBytes:       u64 // exact session-class tuple
  idleMillis:            u32 // exact session-class tuple
  lifetimeMillis:        u32 // exact session-class tuple
  openedAtEpoch:         u32
  recordVirtualBucket:   u16 // virtualBucketDerivationV1(CORE, logicalRetryKey)
  resultBytes:           optional canonical signed open-result bytes[1..16384]
  terminalReason:        optional canonical printable ASCII bytes[1..64]
}BlindExternalAckFloorV1��BlindExternalAckFloorV1��BlindExternalAckFloorV1 { // external control-journal witness, not client wire
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 bytes
  externalJournalId:     32 random nonzero bytes
  durabilityContinuityHash:32 bytes
  floorRevision:         u64
  previousFloorHash:     optional 32 bytes
  writerEpoch:           u64
  writerFenceTokenHash:  32 bytes
  externalLeaseRevision: u64
  walSequence:           u64
  walHash:               32 bytes
  descriptorSequence:    u64
  descriptorHash:        32 bytes
  witnessedUnixMillis:   u64
  witnessPublicKey:      32-byte Ed25519 public key
  signature:             64-byte Ed25519 signature
} BlindExternalControlCheckpointV1�r BlindExternalControlCheckpointV1�JBlindExternalControlCheckpointV1 { // witness-signed prune/restore anchor
  version:               u8 = 1
  relayPublicKey:        32 bytes
  storeId:               32 bytes
  externalJournalId:     32 random nonzero bytes
  durabilityContinuityHash:32 bytes
  checkpointRevision:    u64
  previousCheckpointHash:optional 32 bytes
  baseFloorRevision:     u64
  baseFloorHash:         32 bytes
  writerEpoch:           u64
  writerFenceTokenHash:  32 bytes
  externalLeaseRevision: u64
  walSequence:           u64
  walHash:               32 bytes
  descriptorSequence:    u64
  descriptorHash:        32 bytes
  snapshotByteLength:    u64
  snapshotHash:          32 bytes
  oldestRetainedFloorRevision:u64
  createdUnixMillis:     u64
  witnessPublicKey:      32-byte Ed25519 public key
  signature:             64-byte Ed25519 signature
}"BlindInboxCommittedSpendSnapshotV1��"BlindInboxCommittedSpendSnapshotV1��BlindInboxCommittedSpendSnapshotV1 {
  // committed charged-operation fields; remainingAttempts is 0..1
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  physicalTopic:         32 nonzero bytes
  operation:             u8 in {1,2,4,5,6}
  profileId:             u16[1..65535]
  frameClass:            u8[0..3]
  frameHash:             optional 32 nonzero bytes
  requestedLeaseClass:   u8[0..4]
  declaredBytes:         u32
  deadlineUnixMillis:    u64 nonzero
  remainingAttempts:     u8[0..1]
  reservedEpoch:         u32
  resultIdentity:        32 nonzero bytes
  resultRevision:        u64
  committedEpoch:        u32
  resultLeaseClass:      optional u8[1..4] // present exactly for CREATE/RENEW
  resultLeaseEpoch:      optional u32 // present exactly for CREATE/RENEW
  resultBindingBytes:    canonical profile-1 result-binding bytes[1..1024]
  clientNonce:           32 nonzero bytes
  retentionClassAtAppend:optional u8[1..4] // present exactly for APPEND
  appendLeaseEpoch:      optional u32 // present exactly for APPEND
  expiresAtEpoch:        optional u32 // present exactly for APPEND
  ackSignature:          optional 64 nonzero bytes // finalized APPEND ACK
  resultCommitment:      optional 32 nonzero bytes // present for APPEND/READ/WATCH
  retryState:            u8[0..3] // zero exactly outside READ/WATCH
}!BlindInboxControlGlobalSnapshotV1�#!BlindInboxControlGlobalSnapshotV1��BlindInboxControlGlobalSnapshotV1 {
  version:               u8 = 1
  epochFloor:            u32
  clockUnsafe:           u8[0..1]
  recoveryGap:           u8[0..1]
  storedFrameBytes:      u64
  stagingFrameBytes:     u64
  controlBytes:          u64
  tombstoneBytes:        u64
  frameIndexBytes:       u64
  reservedFrames:        u64
  inboxCount:            u64
  frameCount:            u64
  spendCount:            u64
  commitmentCount:       u64
  requestResultCount:    u64
  retryRecordCount:      u64
  retryFramePinCount:    u64
  profileStagingCount:   u32
  integrityEvidenceCount:u32
  controlRecordAccountingBytes:u16 = 512
  tombstoneRecordAccountingBytes:u16 = 512
  frameIndexAccountingBytes:u16 = 256
  retryRecordAccountingBytes:u16 = 256
}&BlindInboxExpiredAppendSpendSnapshotV1�&BlindInboxExpiredAppendSpendSnapshotV1��BlindInboxExpiredAppendSpendSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  physicalTopic:         32 nonzero bytes
  profileId:             u16[1..65535]
  frameClass:            u8[1..3]
  frameHash:             32 nonzero bytes
  declaredBytes:         u32 // exact frame-class bytes
  deadlineUnixMillis:    u64 nonzero
  remainingAttempts:     u8[0..1]
  reservedEpoch:         u32
  resultIdentity:        32 nonzero bytes
  appendRevision:        u64 nonzero
  storedAtEpoch:         u32
  retentionClassAtAppend:u8[1..4]
  appendLeaseEpoch:      u32
  expiresAtEpoch:        u32
  expiredEpoch:          u32
  clientNonce:           32 nonzero bytes
  resultBindingBytes:    canonical profile-1 result-binding bytes[1..1024]
  ackSignature:          64 nonzero bytes
  resultCommitment:      32 nonzero bytes
}BlindInboxFrameSnapshotV1�BlindInboxFrameSnapshotV1��BlindInboxFrameSnapshotV1 {
  version:               u8 = 1
  physicalTopic:         32 nonzero bytes
  appendRevision:        u64 nonzero
  frameHash:             32 nonzero bytes
  frameClass:            u8[1..3]
  frameVirtualBucket:    u16
  frameObjectId:         32 nonzero bytes
  appendLeaseEpoch:      u32
  storedAtEpoch:         u32
  expiresAtEpoch:        u32
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  resultIdentity:        32 nonzero bytes
}%BlindInboxIntegrityEvidenceSnapshotV1�%BlindInboxIntegrityEvidenceSnapshotV1�BlindInboxIntegrityEvidenceSnapshotV1 {
  version:               u8 = 1
  reason:                u8[1..3]
  detectedEpoch:         u32
  evidenceHash:          32 nonzero bytes
}"BlindInboxProfileStagingSnapshotV1�"BlindInboxProfileStagingSnapshotV1�BlindInboxProfileStagingSnapshotV1 {
  version:               u8 = 1
  profileId:             u16[1..65535]
  stagingFrameBytes:     u64 nonzero
}BlindInboxRecordSnapshotV1��BlindInboxRecordSnapshotV1��BlindInboxRecordSnapshotV1 {
  version:               u8 = 1
  physicalTopic:         32 nonzero bytes
  metadataVirtualBucket: u16
  allocationEpoch:       u32
  allocationLeaseClass:  u8[1..4]
  frameClassBits:        u8[1..7]
  appendAuthMode:        u8[0..1]
  appendPublicKey:       optional 32 nonzero bytes
  createPublicKey:       32 nonzero bytes
  renewPublicKey:        32 nonzero bytes
  closePublicKey:        32 nonzero bytes
  retentionClass:        u8[1..4]
  leaseClass:            u8[1..4]
  leaseEpoch:            u32
  stateRevision:         u64
  policyRevision:        u64
  appendRevision:        u64
  createCommitment:      32 nonzero bytes
  objectState:           u8[1..2]
  policyState:           u8[1..2]
  tombstoneReason:       optional u8[1..2]
  terminalEpoch:         optional u32
  createSpendTag:        32 nonzero bytes
  createRequestCommitment:32 nonzero bytes
  resultIdentity:        32 nonzero bytes
  createdEpoch:          u32
}!BlindInboxRequestResultSnapshotV1�
!BlindInboxRequestResultSnapshotV1��BlindInboxRequestResultSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  physicalTopic:         32 nonzero bytes
  resultIdentity:        32 nonzero bytes
  resultRevision:        u64 nonzero
  committedEpoch:        u32
  resultBindingBytes:    canonical profile-1 result-binding bytes[1..1024]
  clientNonce:           32 nonzero bytes
  resultLeaseClass:      u8 = 0
  resultLeaseEpoch:      u32
}!BlindInboxReservedSpendSnapshotV1�?!BlindInboxReservedSpendSnapshotV1�BlindInboxReservedSpendSnapshotV1 {
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  physicalTopic:         32 nonzero bytes
  operation:             u8 in {1 CREATE,2 RENEW,4 APPEND,5 READ,6 WATCH}
  profileId:             u16[1..65535]
  frameClass:            u8[0..3] // nonzero exactly for APPEND
  frameHash:             optional 32 nonzero bytes // present exactly for APPEND
  requestedLeaseClass:   u8[0..4] // nonzero exactly for CREATE/RENEW
  declaredBytes:         u32 // exact frame-class bytes for APPEND, otherwise zero
  deadlineUnixMillis:    u64 nonzero
  remainingAttempts:     u8[0..2]
  reservedEpoch:         u32
}!BlindInboxRetryFramePinSnapshotV1�!BlindInboxRetryFramePinSnapshotV1�BlindInboxRetryFramePinSnapshotV1 {
  version:               u8 = 1
  spendTag:              32 nonzero bytes
  physicalTopic:         32 nonzero bytes
  appendRevision:        u64 nonzero
  frameHash:             32 nonzero bytes
}!BlindInboxRetryMaterialSnapshotV1�!BlindInboxRetryMaterialSnapshotV1�BlindInboxRetryMaterialSnapshotV1 {
  version:               u8 = 1
  spendTag:              32 nonzero bytes
  entriesCommitment:     32 nonzero bytes
  nextCursor:            optional bounded bytes[1..128]
}BlindInboxRetryReconstructionV1��BlindInboxRetryReconstructionV1�[BlindInboxRetryReconstructionV1 { // exactly 50 bytes; fits the generic 256-byte retry-record cap
  version:               u8 = 1
  firstAppendRevision:   u64 // zero exactly for an empty page
  lastAppendRevision:    u64 // zero exactly for an empty page
  entryCount:            u8[0..64]
  nextCursorHash:        32 bytes // zero means absent
}!BlindInboxTerminalSpendSnapshotV1��!BlindInboxTerminalSpendSnapshotV1��BlindInboxTerminalSpendSnapshotV1 {
  // terminal charged-operation fields
  version:               u8 = 1
  transactionId:         32 nonzero bytes
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  physicalTopic:         32 nonzero bytes
  operation:             u8 in {1,2,4,5,6}
  profileId:             u16[1..65535]
  frameClass:            u8[0..3]
  frameHash:             optional 32 nonzero bytes
  requestedLeaseClass:   u8[0..4]
  declaredBytes:         u32
  deadlineUnixMillis:    u64 nonzero
  remainingAttempts:     u8[0..2]
  reservedEpoch:         u32
  terminalReason:        u8[1..3]
  terminalEpoch:         u32
} BlindLocalCheckpointV1�BlindLocalCheckpointV1��BlindLocalCheckpointV1 { // canonical header; snapshot bytes are a separate hashed file
  magic:                 exact ASCII "HRBCKP01"
  checkpointVersion:     u16 = 1
  relayPublicKey:        32 bytes
  storeId:               32 random nonzero bytes
  durabilityProfileId:   u8
  durabilityContinuityHash:32 bytes
  durabilityProfileHash: 32 bytes
  formatMajor:           u16
  formatMinor:           u16
  storeFormatHash:       32 bytes
  specHash:              32 bytes
  abiHash:               32 bytes
  mapGeneration:         u64 nonzero
  bucketMapHash:         32 bytes
  writerEpoch:           u64 nonzero
  writerFenceTokenHash:  32 bytes
  checkpointRevision:    u64 nonzero
  previousCheckpointHash:optional 32 bytes // absent exactly at revision 1
  coveredWalSequence:    u64 nonzero
  coveredWalHash:        32 bytes
  epochFloor:            u32
  descriptorSequenceFloor:u64
  descriptorHashFloor:   32 bytes
  snapshotByteLength:    u64 nonzero
  snapshotHash:          32 bytes
}!BlindPreparedAdmissionStoreV1��BlindPreparedAdmissionStoreV1��BlindPreparedAdmissionStoreV1 { // INTERNAL_STORE; admission-sensitive at rest
  version:               u8 = 1
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  profileId:             u16[1..65535]
  schemeId:              u16[1..65535]
  parameterHash:         32 nonzero bytes
  resourceClass:         u16
  leaseClass:            u8
  costUnits:             u64
  walCommitRecord:       bounded bytes[1..16384]
}"BlindPutAtomicCommittedStoreV1�KBlindPutAtomicCommittedStoreV1�BlindPutAtomicCommittedStoreV1 { // INTERNAL_STORE; Cell WAL recordType 17 payload
  version:               u8 = 1
  spendTag:              32 nonzero bytes
  requestCommitment:     32 nonzero bytes
  requestFingerprint:    32 nonzero bytes
  storageSlot:           32 nonzero bytes
  allocationEpoch:       u32
  sizeClass:             u8[1..5]
  leaseClass:            u8[1..4]
  declaredBlobHash:      32 nonzero bytes
  createPublicKey:       32 nonzero bytes
  renewPublicKey:        32 nonzero bytes
  dropPublicKey:         32 nonzero bytes
  allocationCommitment:  32 nonzero bytes
  profileId:             u16[1..65535]
  preparedAdmissionBytes:bounded canonical BlindPreparedAdmissionStoreV1 bytes[1..17408]
  resultBindingBytes:    canonical profile-1 result-binding bytes[1..1024]
  declaredBytes:         u32
  blobObjectId:          32 nonzero bytes
  leaseEpoch:            u32
  stateRevision:         u64 = 0
  policyRevision:        u64 = 0
  resultIdentity:        32 nonzero bytes
  committedEpoch:        u32
}BlindPreparedAdmissionStoreV1#BlindStoreManifestV1�"BlindStoreManifestV1�BlindStoreManifestV1 { // internal, never served to clients
  magic:                 exact ASCII "HRBLIND1"
  manifestVersion:       u16 = 1
  storeId:               32 random nonzero bytes
  relayPublicKey:        32 bytes
  durabilityProfileId:   u8
  durabilityContinuityHash:32 bytes
  durabilityProfileHash: 32 bytes
  formatMajor:           u16
  formatMinor:           u16
  storeFormatHash:       32 bytes
  specHash:              32 bytes
  abiHash:               32 bytes
  mapGeneration:         u64
  bucketMapHash:         32 bytes
  checkpointWalSequence: u64
  checkpointHash:        32 bytes
  epochFloor:            u32
  writerEpoch:           u64
  writerFenceTokenHash:  32 bytes
  externalLeaseRevision: u64 // zero for durability profile 1
  externalJournalId:     32 bytes // zero for profile 1; nonzero for 2
  externalWitnessPublicKey:32 bytes // zero for profile 1
  restoreEvidenceFeedId: 32 bytes // nonzero only for profile-2 feed-bound/backed
  lastAckWalSequence:    u64 // zero for profile 1
  lastAckWalHash:        32 bytes // zero for profile 1
  externalCheckpointRevision:u64 // zero for profile 1
  externalCheckpointHash:32 bytes // zero for profile 1
  descriptorSequenceFloor:u64
  descriptorHashFloor:  32 bytes
  migrationState:        u8 // 0 stable, 1 prepared, 2 copying, 3 verifying, 4 switching
  sourceFormatMajor:     u16
  targetFormatMajor:     u16
  migrationCursorHash:   32 bytes
  previousManifestHash:  optional 32 bytes
  manifestRevision:      u64
  mac:                   32 bytes
}$BlindWalHeaderV2�1BlindWalHeaderV2�BlindWalHeaderV2 { // exact 192-byte prefix of each complete WAL frame
  0:   magic:                    4 bytes = ASCII "HRWL"
  4:   walVersion:               u8 = 2
  5:   recordType:               u8[1..255]
  6:   totalLength:              u32 = 224 + payloadLength
  10:  walSequence:              u64[1..2^64-1]
  18:  transactionId:            32 nonzero bytes
  50:  virtualBucket:            u16
  52:  mapGeneration:            u64[1..2^64-1]
  60:  writerFenceTokenHash:     32 nonzero bytes
  92:  payloadLength:            u32
  96:  previousWalHash:          32 bytes
  128: durabilityContinuityHash: 32 nonzero bytes
  160: payloadHash:              32 bytes = BLAKE2b-256(payload)
  192: payload:                  payloadLength bytes
  192 + payloadLength: checksum: 32 bytes
}%CellRecordV1��CellRecordV1��CellRecordV1 {
  version:          u8 = 1
  slot:             32 bytes pseudorandom/self-certifying
  allocationEpoch:  u32
  sizeClass:        u8
  leaseClass:       u8
  leaseEpoch:       u32
  stateRevision:    u64
  policyRevision:   u64
  cellBlobHash:     32 bytes
  cellBlob:         exact total bytes required by sizeClass
  createPublicKey:  32 random bytes
  renewPublicKey:   32 random bytes
  dropPublicKey:    32 random bytes
  allocationCommitment: 32 bytes
}&ChargedUnaryRetryV1��ChargedUnaryRetryV1��ChargedUnaryRetryV1 {
  version:          u8 = 1
  spendTag:         32 bytes
  requestCommitment:32 bytes
  familyId:         u8
  operationId:      u8
  locatorCommitment:32 bytes
  sourceRevision:   u64
  sourceCommitment: 32 bytes
  resultCommitment: 32 bytes
  reconstruction:   bounded canonical bytes[0..96]
  retryExpiresMinute:u64 // relay wall-minute deadline, never an app timestamp
  retryState:       u8      // 1 replayable, 2 visibility-revoked, 3 terminal
}LocalAuthenticatedChannelV1��LocalAuthenticatedChannelV1�}LocalAuthenticatedChannelV1 {
  version:                 u8 = 1
  edgeProcessNonce:        bytes[32] // nonzero
  localChannelNonce:       bytes[32] // nonzero
  parentSessionId:         bytes[32] // nonzero, derived
  transportProfileHash:    bytes[32] // nonzero
  finalNoiseHandshakeHash: bytes[64] // nonzero
  channelBindingMac:       bytes[32] // nonzero, keyed BLAKE2b-256
}LocalDispatchV1�#LocalDispatchV1�LocalDispatchV1 {
  version:                 u8 = 1
  family:                  u8 // exact public family ID 1..5
  transportId:             u8 // public 1..9; zero only for local readiness control
  transportSupportBit:     u16 // explicit one-hot public support bit; readiness zero
  endpointId:              u8 // 1..255, active descriptor endpoint
  outerClass:              u8 // public class 1..6; zero only for local readiness control
  acceptedMonotonicMillis: u64 // external first request byte; control probe construction
  absoluteDeadlineMonotonicMillis:u64
  adjacentRelayKeyPresent: u8 // exactly 0 or 1
  adjacentRelayKey:        present iff tag=1, nonzero 32-byte authenticated relay key
  bodyLength:              u32
  externalCanonicalBytes:  bytes[bodyLength]
}LocalStreamAttachContextV1�XLocalStreamAttachContextV1�6LocalStreamAttachContextV1 {
  version:                 u8 = 1
  ticket:                  bytes[32] // nonzero and one-use
  parentSessionId:         bytes[32] // nonzero
  descriptorSequence:      u64 // nonzero
  descriptorHash:          bytes[32] // nonzero
  bindingHash:             bytes[32] // nonzero
}LocalStreamControlV1�LocalStreamControlV1�LocalStreamControlV1 {
  version:                 u8 = 1
  controlKind:             u8 // closed 1..7
  controlId:               u64 // nonzero
  variant:                 exact fixed fields selected by controlKind
}LocalStreamFrameV1�LocalStreamFrameV1��LocalStreamFrameV1 {
  version:                 u8 = 1
  direction:               u8 // 1 edge→daemon, 2 daemon→edge
  frameKind:               u8 // 1 CONTENT, 2 CORE_RAW, 3 CIPHERTEXT, 4 CONTROL, 5 ABORT
  sequence:                u64 // first zero, exact +1 per physical direction
  wireClass:               u8 // kind-specific zero or 1..3
  flags:                   u8 // bit 0 FIN only; all other bits zero
  bodyLength:              u32
  bytes:                   bytes[bodyLength]
}LocalStreamOpenV1��LocalStreamOpenV1��LocalStreamOpenV1 {
  version:                 u8 = 1
  openKind:                u8 // closed 1..4 registry below
  transportId:             u8 // exact registry 1..9
  transportSupportBit:     u16 // explicit registered one-hot bit
  endpointId:              u8 // 1..255
  streamMode:              u8 // closed 1..5 registry below
  channelClass:            u8 // closed combination: zero or stream class 1..3
  acceptedMonotonicMillis: u64
  openDeadlineMonotonicMillis:u64
  adjacentRelayKeyPresent: u8
  adjacentRelayKey:        present iff tag=1, nonzero 32 bytes
  contextLength:           u32 // exact 225 or 137 for the registered combination
  context:                 bytes[contextLength] // closed canonical private schema
}LocalUnaryResponseV1�SLocalUnaryResponseV1�7LocalUnaryResponseV1 {
  version:                 u8 = 1
  responseKind:            u8 // 1 EXTERNAL_CANONICAL, 2 LOCAL_BROKER_ERROR, 3 LOCAL_READY_ACK
  localBrokerError:        u8 // zero for kinds 1/3; closed enum below for kind 2
  bodyLength:              u32
  externalCanonicalBytes:  bytes[bodyLength]
}