Permission
Author: Flydexo - @Flydex0
A permission is made for a specific function of a specific contract
1 operator = 1 permission set
1 permission set = infinite permissions
struct Permission {
    address operator;
    address to;
    bytes4 selector;
    bytes allowed_arguments;
    address paymaster;
    uint48 validUntil;
    uint48 validAfter;
    uint256 maxUsage;
    address dataValidator;
}