```\n/\*\*\n \* @notice Registers an exit game within the PlasmaFramework. Only the maintainer can call the function.\n \* @dev Emits ExitGameRegistered event to notify clients\n \* @param \_txType The tx type where the exit game wants to register\n \* @param \_contract Address of the exit game contract\n \* @param \_protocol The transaction protocol, either 1 for MVP or 2 for MoreVP\n \*/\nfunction registerExitGame(uint256 \_txType, address \_contract, uint8 \_protocol) public onlyFrom(getMaintainer()) {\n    require(\_txType != 0, "Should not register with tx type 0");\n    require(\_contract != address(0), "Should not register with an empty exit game address");\n    require(\_exitGames[\_txType] == address(0), "The tx type is already registered");\n    require(\_exitGameToTxType[\_contract] == 0, "The exit game contract is already registered");\n    require(Protocol.isValidProtocol(\_protocol), "Invalid protocol value");\n\n    \_exitGames[\_txType] = \_contract;\n    \_exitGameToTxType[\_contract] = \_txType;\n    \_protocols[\_txType] = \_protocol;\n    \_exitGameQuarantine.quarantine(\_contract);\n\n    emit ExitGameRegistered(\_txType, \_contract, \_protocol);\n}\n```\n