{"abi":[{"type":"function","name":"onAfterCallSystem","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"onBeforeCallSystem","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","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":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onAfterCallSystem(address,bytes32,bytes)":"973d8f99","onBeforeCallSystem(address,bytes32,bytes)":"c3323031","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"onAfterCallSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"onBeforeCallSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"The abstract SystemHook contract implements the ERC-165 supportsInterface function for ISystemHook. System hooks are used for executing additional logic before or after certain system actions.\",\"kind\":\"dev\",\"methods\":{\"onAfterCallSystem(address,bytes32,bytes)\":{\"details\":\"Provides the ability to add custom logic or checks after a system call completes.\",\"params\":{\"callData\":\"Data that was sent as part of the system call.\",\"msgSender\":\"The original sender of the system call.\",\"systemId\":\"The identifier for the system that was called.\"}},\"onBeforeCallSystem(address,bytes32,bytes)\":{\"details\":\"Provides the ability to add custom logic or checks before a system is invoked.\",\"params\":{\"callData\":\"Data being sent as part of the system call.\",\"msgSender\":\"The original sender of the system call.\",\"systemId\":\"The identifier for the system being called.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Overridden from IERC165 to include the system hook interface.\",\"params\":{\"interfaceId\":\"The bytes4 interface identifier, as specified in ERC-165.\"},\"returns\":{\"_0\":\"true if the contract implements `interfaceId`, false otherwise.\"}}},\"title\":\"SystemHook\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"onAfterCallSystem(address,bytes32,bytes)\":{\"notice\":\"Executes after a system call.\"},\"onBeforeCallSystem(address,bytes32,bytes)\":{\"notice\":\"Executes before a system call.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if the contract implements a given interface.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/world/src/SystemHook.sol\":\"SystemHook\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/SystemHook.sol\":{\"keccak256\":\"0xcb7063c48eb27d3ddb0f1b477c8a298b68ed7fceba0762e555342a24a62f6fe3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0da7b53848efba426f51f1f3698c3cd862553ed90edf220ed19fda51c12d162f\",\"dweb:/ipfs/QmNd1QKSNoqHms3azKPLZtZoqNuRkgasCnYxVPG482b6jm\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onAfterCallSystem"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onBeforeCallSystem"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"onAfterCallSystem(address,bytes32,bytes)":{"details":"Provides the ability to add custom logic or checks after a system call completes.","params":{"callData":"Data that was sent as part of the system call.","msgSender":"The original sender of the system call.","systemId":"The identifier for the system that was called."}},"onBeforeCallSystem(address,bytes32,bytes)":{"details":"Provides the ability to add custom logic or checks before a system is invoked.","params":{"callData":"Data being sent as part of the system call.","msgSender":"The original sender of the system call.","systemId":"The identifier for the system being called."}},"supportsInterface(bytes4)":{"details":"Overridden from IERC165 to include the system hook interface.","params":{"interfaceId":"The bytes4 interface identifier, as specified in ERC-165."},"returns":{"_0":"true if the contract implements `interfaceId`, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"onAfterCallSystem(address,bytes32,bytes)":{"notice":"Executes after a system call."},"onBeforeCallSystem(address,bytes32,bytes)":{"notice":"Executes before a system call."},"supportsInterface(bytes4)":{"notice":"Checks if the contract implements a given interface."}},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@latticexyz/world/src/SystemHook.sol":"SystemHook"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/SystemHook.sol":{"keccak256":"0xcb7063c48eb27d3ddb0f1b477c8a298b68ed7fceba0762e555342a24a62f6fe3","urls":["bzz-raw://0da7b53848efba426f51f1f3698c3cd862553ed90edf220ed19fda51c12d162f","dweb:/ipfs/QmNd1QKSNoqHms3azKPLZtZoqNuRkgasCnYxVPG482b6jm"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/world/src/SystemHook.sol","id":48308,"exportedSymbols":{"IERC165":[47584],"ISystemHook":[47658],"SystemHook":[48307]},"nodeType":"SourceUnit","src":"32:965:116","nodes":[{"id":48276,"nodeType":"PragmaDirective","src":"32:25:116","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":48278,"nodeType":"ImportDirective","src":"59:48:116","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/ISystemHook.sol","file":"./ISystemHook.sol","nameLocation":"-1:-1:-1","scope":48308,"sourceUnit":47659,"symbolAliases":[{"foreign":{"id":48277,"name":"ISystemHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47658,"src":"68:11:116","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48280,"nodeType":"ImportDirective","src":"108:40:116","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":48308,"sourceUnit":47585,"symbolAliases":[{"foreign":{"id":48279,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47584,"src":"117:7:116","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48307,"nodeType":"ContractDefinition","src":"449:547:116","nodes":[{"id":48306,"nodeType":"FunctionDefinition","src":"806:188:116","nodes":[],"body":{"id":48305,"nodeType":"Block","src":"888:106:116","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":48296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48291,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48286,"src":"901:11:116","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":48293,"name":"ISystemHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47658,"src":"921:11:116","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISystemHook_$47658_$","typeString":"type(contract ISystemHook)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ISystemHook_$47658_$","typeString":"type(contract ISystemHook)"}],"id":48292,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"916:4:116","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:17:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ISystemHook_$47658","typeString":"type(contract ISystemHook)"}},"id":48295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"934:11:116","memberName":"interfaceId","nodeType":"MemberAccess","src":"916:29:116","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"901:44:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":48302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48297,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48286,"src":"949:11:116","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":48299,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47584,"src":"969:7:116","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$47584_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$47584_$","typeString":"type(contract IERC165)"}],"id":48298,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"964:4:116","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"964:13:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$47584","typeString":"type(contract IERC165)"}},"id":48301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"978:11:116","memberName":"interfaceId","nodeType":"MemberAccess","src":"964:25:116","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"949:40:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"901:88:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48290,"id":48304,"nodeType":"Return","src":"894:95:116"}]},"baseFunctions":[47583],"documentation":{"id":48284,"nodeType":"StructuredDocumentation","src":"497:306:116","text":" @notice Checks if the contract implements a given interface.\n @dev Overridden from IERC165 to include the system hook interface.\n @param interfaceId The bytes4 interface identifier, as specified in ERC-165.\n @return true if the contract implements `interfaceId`, false otherwise."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"815:17:116","parameters":{"id":48287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48286,"mutability":"mutable","name":"interfaceId","nameLocation":"840:11:116","nodeType":"VariableDeclaration","scope":48306,"src":"833:18:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":48285,"name":"bytes4","nodeType":"ElementaryTypeName","src":"833:6:116","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"832:20:116"},"returnParameters":{"id":48290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48306,"src":"882:4:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48288,"name":"bool","nodeType":"ElementaryTypeName","src":"882:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"881:6:116"},"scope":48307,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":48282,"name":"ISystemHook","nameLocations":["481:11:116"],"nodeType":"IdentifierPath","referencedDeclaration":47658,"src":"481:11:116"},"id":48283,"nodeType":"InheritanceSpecifier","src":"481:11:116"}],"canonicalName":"SystemHook","contractDependencies":[],"contractKind":"contract","documentation":{"id":48281,"nodeType":"StructuredDocumentation","src":"150:298:116","text":" @title SystemHook\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @dev The abstract SystemHook contract implements the ERC-165 supportsInterface function for ISystemHook.\n System hooks are used for executing additional logic before or after certain system actions."},"fullyImplemented":false,"linearizedBaseContracts":[48307,47658,47584],"name":"SystemHook","nameLocation":"467:10:116","scope":48308,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":116}