{
eql: %i[type default null],
ot: %i[type default null],
gt: %i[type default null lt lte],
gte: %i[type default null lt lte],
lt: %i[type default null gt gte],
lte: %i[type default null gt gte],
range: %i[type default null],
enum: %i[type default null],
type: %i[default null eql ot gt gte lt lte range enum regexp length format],
array_type: %i[default null length],
custom_type: %i[default null],
active_record: %i[default null],
length: %i[type array],
regexp: %i[type default null],
null: %i[all],
default: %i[all],
format: %i[type default null],
}.freeze
{
integer: %i[eql gt gte lt lte ot range enum null default],
float: %i[eql gt gte lt lte ot range enum null default],
string: %i[enum length eql ot regexp null default],
datetime: %i[null default format],
json: %i[null default],
boolean: %i[null default],
hash: %i[null default length],
array: %i[null default length],
}.freeze