[
  {
    "type": "function",
    "name": "_msgSender",
    "inputs": [],
    "outputs": [
      {
        "name": "sender",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "_msgValue",
    "inputs": [],
    "outputs": [
      {
        "name": "value",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "_world",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "callDeleteClass",
    "inputs": [
      {
        "name": "classId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callDeleteObject",
    "inputs": [
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callInstantiate",
    "inputs": [
      {
        "name": "classId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callRemoveTag",
    "inputs": [
      {
        "name": "entityId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "tagId",
        "type": "bytes32",
        "internalType": "TagId"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callScopedCreateRole",
    "inputs": [
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "admin",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callScopedGrantRole",
    "inputs": [
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callScopedRenounceRole",
    "inputs": [
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callScopedRevokeAll",
    "inputs": [
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callScopedRevokeRole",
    "inputs": [
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "account",
        "type": "address",
        "internalType": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callScopedTransferRoleAdmin",
    "inputs": [
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "role",
        "type": "bytes32",
        "internalType": "bytes32"
      },
      {
        "name": "newAdmin",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callSetClassAccessRole",
    "inputs": [
      {
        "name": "classId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "newAccessRole",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callSetObjectAccessRole",
    "inputs": [
      {
        "name": "objectId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "newAccessRole",
        "type": "bytes32",
        "internalType": "bytes32"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "callSetTag",
    "inputs": [
      {
        "name": "entityId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "tagParams",
        "type": "tuple",
        "internalType": "struct TagParams",
        "components": [
          {
            "name": "tagId",
            "type": "bytes32",
            "internalType": "TagId"
          },
          {
            "name": "value",
            "type": "bytes",
            "internalType": "bytes"
          }
        ]
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "supportsInterface",
    "inputs": [
      {
        "name": "interfaceId",
        "type": "bytes4",
        "internalType": "bytes4"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool",
        "internalType": "bool"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "error",
    "name": "EntitySystemLib_CallingFromRootSystem",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RoleManagementSystemLib_CallingFromRootSystem",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SOF_CallTooDeep",
    "inputs": [
      {
        "name": "callCount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "SOF_InvalidAccessLogic",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SOF_InvalidCall",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SOF_InvalidEntityType",
    "inputs": [
      {
        "name": "givenEntity",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "SOF_UnscopedSystemCall",
    "inputs": [
      {
        "name": "entityId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "systemId",
        "type": "bytes32",
        "internalType": "ResourceId"
      }
    ]
  },
  {
    "type": "error",
    "name": "TagSystemLib_CallingFromRootSystem",
    "inputs": []
  }
]