A filter rule as saved, exactly as the node holds it (never normalized): a comparison {column, operator, value?}, a group {op: 'and' | 'or', rules}, a negation {op: 'not', rule}, or the JSON of a rule this version couldn't read.