{
  "schema": "unified-ble-native-protocol-abi",
  "version": 7,
  "recordKinds": {
    "attachment": 1,
    "connectionPath": 2,
    "databasePath": 3,
    "servicePath": 4,
    "characteristicPath": 5,
    "descriptorPath": 6,
    "operationCorrelation": 7,
    "binaryReference": 8,
    "serviceDataEntry": 9,
    "manufacturerDataEntry": 10,
    "command": 11,
    "terminal": 12,
    "result": 13,
    "advertisement": 14,
    "event": 15,
    "error": 16,
    "restorationRecord": 17,
    "restorationAdoptionRequest": 18,
    "restorationAdoptionResult": 19,
    "scanOptions": 20,
    "databaseSnapshot": 21,
    "characteristicSnapshot": 22,
    "adapterStateSnapshot": 23,
    "bondedPeerSnapshot": 24
  },
  "enums": {
    "commandKinds": {
      "scanStart": 1,
      "scanStop": 2,
      "connect": 3,
      "disconnect": 4,
      "discover": 5,
      "read": 6,
      "write": 7,
      "subscribe": 8,
      "unsubscribe": 9,
      "cancel": 10,
      "adoptRestoration": 11,
      "destroy": 12,
      "readRssi": 13,
      "requestMtu": 14,
      "requestPriority": 20,
      "readDescriptor": 15,
      "writeDescriptor": 16,
      "securityState": 17,
      "securityPair": 18,
      "securityCancelPairing": 19,
      "readPhy": 21,
      "requestPhy": 22,
      "readMtu": 23,
      "enumerateBondedPeers": 24
    },
    "resultKinds": {
      "accepted": 1,
      "scanStarted": 2,
      "connected": 3,
      "database": 4,
      "read": 5,
      "write": 6,
      "subscribed": 7,
      "unsubscribed": 8,
      "cancelled": 9,
      "restoration": 10,
      "destroyed": 11,
      "rssi": 12,
      "mtu": 13,
      "priority": 18,
      "descriptorRead": 14,
      "descriptorWrite": 15,
      "securityState": 16,
      "securityPair": 17,
      "phy": 19,
      "bondedPeers": 20
    },
    "eventKinds": {
      "adapterState": 1,
      "advertisement": 2,
      "connectionLost": 3,
      "databaseChanged": 4,
      "notification": 5,
      "backendRestarted": 6,
      "restorationAvailable": 7,
      "diagnostic": 8,
      "securityStateChanged": 9
    },
    "terminalOutcomes": { "succeeded": 1, "failed": 2 },
    "cancellationStates": { "cancellationRequested": 1, "alreadyTerminal": 2, "notCancellable": 3 },
    "binaryOwnership": { "nativeOwnedCopy": 1, "javascriptOwnedCopy": 2, "transferred": 3 },
    "writeModes": { "withResponse": 1, "withoutResponse": 2 },
    "notificationDeliveryModes": { "notification": 1, "indication": 2 },
    "connectionPriorities": { "lowPower": 1, "balanced": 2, "highThroughput": 3 },
    "connectionIntents": { "direct": 1, "whenAvailable": 2 },
    "connectionPhys": { "le1m": 1, "le2m": 2, "leCoded": 3 },
    "pairTransports": { "platformDefault": 1, "le": 2 },
    "adapterAvailability": { "available": 1, "unavailable": 2, "unsupported": 3, "unknown": 4 },
    "adapterAuthorization": { "granted": 1, "denied": 2, "restricted": 3, "notDetermined": 4, "unavailable": 5 },
    "adapterPower": { "on": 1, "off": 2, "resetting": 3, "unsupported": 4, "unknown": 5 },
    "securityBondStates": { "bonded": 1, "bonding": 2, "notBonded": 3, "unknown": 4, "unsupported": 5 },
    "restorationKinds": { "adapter": 1, "connection": 2, "subscription": 3, "event": 4 },
    "restorationOutcomes": {
      "adopted": 1,
      "alreadyConsumed": 2,
      "attachmentMismatch": 3,
      "backendMismatch": 4,
      "namespaceMismatch": 5,
      "epochMismatch": 6
    }
  },
  "fields": {
    "attachment": {
      "attachmentId": 1,
      "backendInstanceId": 2,
      "backendGeneration": 3,
      "adapterId": 4,
      "adapterGeneration": 5
    },
    "connectionPath": { "attachment": 1, "peerId": 2, "connectionId": 3, "ownerLeaseId": 4, "connectionGeneration": 5 },
    "databasePath": { "connection": 1, "databaseId": 2, "databaseGeneration": 3 },
    "servicePath": { "database": 1, "serviceUuid": 2, "serviceOccurrence": 3 },
    "characteristicPath": { "service": 1, "characteristicUuid": 2, "characteristicOccurrence": 3 },
    "descriptorPath": { "characteristic": 1, "descriptorUuid": 2, "descriptorOccurrence": 3 },
    "operationCorrelation": { "attachment": 1, "dispatchEpoch": 2, "nonce": 3 },
    "binaryReference": { "ownerToken": 1, "byteOffset": 2, "byteLength": 3, "ownership": 4, "operationCorrelation": 5 },
    "serviceDataEntry": { "serviceUuid": 1, "binary": 2 },
    "manufacturerDataEntry": { "companyIdentifier": 1, "binary": 2 },
    "scanOptions": {
      "serviceUuids": 1,
      "allowDuplicates": 2,
      "scanMode": 3,
      "callbackType": 4,
      "legacyScan": 5,
      "deviceAddresses": 6
    },
    "adapterStateSnapshot": { "availability": 1, "authorization": 2, "power": 3, "safeReason": 4 },
    "characteristicSnapshot": {
      "path": 1,
      "readable": 2,
      "writableWithResponse": 3,
      "writableWithoutResponse": 4,
      "notifiable": 5,
      "indicatable": 6
    },
    "databaseSnapshot": { "databasePath": 1, "services": 2, "characteristics": 3, "descriptors": 4 },
    "command": {
      "protocolVersion": 1,
      "correlation": 2,
      "kind": 3,
      "characteristicPath": 4,
      "descriptorPath": 5,
      "binary": 6,
      "subscriptionId": 7,
      "cancellationCorrelation": 8,
      "restorationRequest": 9,
      "connectionPath": 10,
      "databasePath": 11,
      "scanOptions": 12,
      "writeMode": 13,
      "requestedMtu": 14,
      "peerId": 15,
      "connectionPriority": 16,
      "phyTx": 17,
      "phyRx": 18,
      "pairTransport": 19,
      "connectionIntent": 20,
      "notificationDeliveryMode": 21
    },
    "terminal": { "correlation": 1, "outcome": 2, "cause": 3 },
    "result": {
      "protocolVersion": 1,
      "kind": 2,
      "terminal": 3,
      "databasePath": 4,
      "characteristicPath": 5,
      "binary": 6,
      "subscriptionId": 7,
      "cancellationState": 8,
      "restoration": 9,
      "error": 10,
      "connectionPath": 11,
      "databaseSnapshot": 12,
      "rssi": 13,
      "negotiatedMtu": 14,
      "descriptorPath": 15,
      "peerId": 16,
      "bondState": 17,
      "priorityAccepted": 18,
      "phyTx": 19,
      "phyRx": 20,
      "phyAccepted": 21,
      "effectiveMtu": 22,
      "bondedPeers": 23
    },
    "advertisement": {
      "peerId": 1,
      "observedAt": 2,
      "ingressOrdinal": 3,
      "source": 4,
      "localName": 5,
      "rssi": 6,
      "txPower": 7,
      "connectable": 8,
      "appearance": 9,
      "serviceUuids": 10,
      "solicitedServiceUuids": 11,
      "overflowServiceUuids": 12,
      "serviceData": 13,
      "manufacturerData": 14,
      "rawRecord": 15,
      "scanResponseRecord": 16,
      "fieldProvenance": 17
    },
    "event": {
      "protocolVersion": 1,
      "eventId": 2,
      "kind": 3,
      "attachment": 4,
      "ingressOrdinal": 5,
      "monotonicTimestamp": 6,
      "connectionPath": 7,
      "databasePath": 8,
      "characteristicPath": 9,
      "operationCorrelation": 10,
      "subscriptionId": 11,
      "advertisement": 12,
      "binary": 13,
      "error": 14,
      "adapterState": 15,
      "peerId": 16,
      "bondState": 17
    },
    "error": {
      "code": 1,
      "domain": 2,
      "operation": 3,
      "retryability": 4,
      "platformDomain": 5,
      "platformCode": 6,
      "safeMessage": 7,
      "androidGattStatus": 8,
      "coreBluetoothDomain": 9,
      "coreBluetoothCode": 10,
      "safeMetadata": 11
    },
    "restorationRecord": {
      "recordVersion": 1,
      "namespace": 2,
      "attachment": 3,
      "ordinal": 4,
      "adoptionEpoch": 5,
      "kind": 6,
      "peerId": 7,
      "connectionPath": 8,
      "characteristicPath": 9,
      "subscriptionId": 10,
      "event": 11
    },
    "restorationAdoptionRequest": {
      "namespace": 1,
      "attachmentId": 2,
      "expectedBackendInstanceId": 3,
      "expectedEpoch": 4,
      "nativeProtocolMinimum": 5,
      "nativeProtocolMaximum": 6,
      "clientId": 7,
      "hostSessionScope": 8
    },
    "restorationAdoptionResult": {
      "attachmentId": 1,
      "receiptId": 2,
      "namespace": 3,
      "boundClientId": 4,
      "adoptionEpoch": 5,
      "outcome": 6,
      "records": 7
    },
    "bondedPeerSnapshot": {
      "nativePeerId": 1,
      "displayName": 2
    }
  }
}
