pragma solidity ^0.8.13; contract CapabilityBitmaskRegistry { mapping(address => uint256) private masks; function register(uint256 mask) external { masks[msg.sender] = mask; } function supportsCapabilities(address account, uint256 required) external view returns (bool) { return (masks[account] & required) == required; } }