interface IVersioned {
    struct Version {
        uint16 major;
        uint16 minor;
        uint16 patch;
    }

    /// @return The version of the contract.
    function version() external view returns (Version memory);
}
/// Implements versioning
function version() external view returns (Version memory);

/// @return The version of the contract.