[
 {
  "type": "constructor",
  "inputs": [
   {
    "name": "owner_",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "brain_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "brain",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "count",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "get",
  "inputs": [
   {
    "name": "id",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "outputs": [
   {
    "name": "decision",
    "type": "tuple",
    "internalType": "struct DecisionLog.Decision",
    "components": [
     {
      "name": "kind",
      "type": "uint8",
      "internalType": "enum DecisionLog.Kind"
     },
     {
      "name": "subject",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "inputHash",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "answer",
      "type": "bytes32",
      "internalType": "bytes32"
     },
     {
      "name": "confidenceBps",
      "type": "uint16",
      "internalType": "uint16"
     },
     {
      "name": "recordedAt",
      "type": "uint64",
      "internalType": "uint64"
     }
    ]
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "owner",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "type": "function",
  "name": "record",
  "inputs": [
   {
    "name": "kind",
    "type": "uint8",
    "internalType": "enum DecisionLog.Kind"
   },
   {
    "name": "subject",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "inputHash",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "answer",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "confidenceBps",
    "type": "uint16",
    "internalType": "uint16"
   },
   {
    "name": "payloadHash",
    "type": "bytes32",
    "internalType": "bytes32"
   },
   {
    "name": "payloadURI",
    "type": "string",
    "internalType": "string"
   }
  ],
  "outputs": [
   {
    "name": "id",
    "type": "uint256",
    "internalType": "uint256"
   }
  ],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setBrain",
  "inputs": [
   {
    "name": "brain_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "function",
  "name": "setOwner",
  "inputs": [
   {
    "name": "owner_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
 },
 {
  "type": "event",
  "name": "BrainSet",
  "inputs": [
   {
    "name": "brain",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "OwnerSet",
  "inputs": [
   {
    "name": "owner",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "anonymous": false
 },
 {
  "type": "event",
  "name": "Recorded",
  "inputs": [
   {
    "name": "id",
    "type": "uint256",
    "indexed": true,
    "internalType": "uint256"
   },
   {
    "name": "kind",
    "type": "uint8",
    "indexed": true,
    "internalType": "enum DecisionLog.Kind"
   },
   {
    "name": "subject",
    "type": "bytes32",
    "indexed": true,
    "internalType": "bytes32"
   },
   {
    "name": "inputHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "answer",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "confidenceBps",
    "type": "uint16",
    "indexed": false,
    "internalType": "uint16"
   },
   {
    "name": "payloadHash",
    "type": "bytes32",
    "indexed": false,
    "internalType": "bytes32"
   },
   {
    "name": "payloadURI",
    "type": "string",
    "indexed": false,
    "internalType": "string"
   }
  ],
  "anonymous": false
 },
 {
  "type": "error",
  "name": "BadConfidence",
  "inputs": []
 },
 {
  "type": "error",
  "name": "BadKind",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotBrain",
  "inputs": []
 },
 {
  "type": "error",
  "name": "NotOwner",
  "inputs": []
 },
 {
  "type": "error",
  "name": "UnknownDecision",
  "inputs": []
 },
 {
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
 }
]
