// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;

/// @title ObjectiveRuleSchemaV3
/// @notice Deprecated compatibility helper for an intentionally empty rule set.
/// @dev V3Safe bonds do not import this helper and no ObjectiveRule class is
///      supported. `ruleHash` is non-authoritative and exists only to preserve
///      callers that construct a legacy consensus key; it cannot authorize,
///      freeze, settle, slash, or uphold a dispute. A future rule requires a
///      separately reviewed contract version with a typed non-extensible
///      verifier.
library ObjectiveRuleSchemaV3 {
    enum Class {
        None
    }

    /// @notice Returns a non-authoritative, domain-separated legacy key.
    function ruleHash(uint8 ruleClass, uint16 schemaVersion) internal pure returns (bytes32) {
        return keccak256(abi.encode("VAULTFIRE_V3_UNSUPPORTED_OBJECTIVE_RULE", schemaVersion, ruleClass));
    }

    /// @notice No objective rule class is supported by V3Safe.
    function isAllowed(uint8 ruleClass, uint16 schemaVersion) internal pure returns (bool) {
        ruleClass;
        schemaVersion;
        return false;
    }
}
