long term, i intend to make it possible to choose which filter groups get applied to a given search. in the short term, they're useful for scenarios like this:
I personally want have no interest in people playing Cis Men unless they're also open to playing women.
Filter Group 'keys gender filters'
(Rejection, Playing:Gender:Cis Male, priority 0)
(Exception, Playing:Gender:Cis Female, priority 0)
(Exception, Playing:Gender:Trans Female, priority 0)
I personally get extremely bothered by Cheating, to the point that I never want to see anything with it ever
Filter Group 'cheating'
(Rejection, Meta:Light Warning:Cheating, priority 0)
I could merge these two groups together, but then I'd still be seeing prompts tagged with Cheating because of my 'Cis Female' and 'Trans Female' exceptions. Separating them means I have granular control over when I make exceptions for certain tags.
Blacklist/whitelist is replaced by Filters in Cardinal.
Filters are either 'Rejection' filters or 'Exception' filters and can be isolated into groups.
If I have a 'keys fandom filter group', I can add
Filter 1 (group, 'keys fandom filter group', type 'Rejection', tag 'playing:fandom:Hazbin Hotel')
Filter 2 (group, 'keys fandom filter group', type 'Rejection', tag 'playing:fandom:Voltron')
Filter 3 (group, 'keys fandom filter group', type 'Rejection', tag 'playing:fandom:Cars')
That filter group would then automatically reject all of those fandoms from any search. If I wanted to reject Homestuck prompts except for ones where they're playing Rose, I'd make a separate filter group.
Filter 1 (group, 'homestuck fg', type 'Rejection', tag 'playing:fandom:Homestuck')
Filter 2 (group, 'homestuck fg', type 'Exception', tag 'playing:character:Rose Lalonde')
In this case, both 'homestuck fg' and 'keys fandom filter group' would simultaneously apply to all searches. With the 'homestuck fg' group, the Rose Exception filter overrides the Rejection filter.
There's another layer on top of this in that you can add a priority number to filters. An Exception filter overrides any Rejection filter with equal or lower priority than it within the same group. Instead of having both 'homestuck fg' and 'keys fandom filter group', I can consolidate them into the following:
Filter 1 (group, 'fandom filters', type 'Rejection', tag 'playing:fandom:Homestuck', priority: 0)
Filter 2 (group, 'fandom filters', type 'Exception', tag 'playing:character:Rose Lalonde', priority: 0)
Filter 3 (group, 'fandom filters', type 'Rejection', tag 'playing:fandom:Hazbin Hotel', priority: 999)
Filter 4 (group, 'fandom filters', type 'Rejection', tag 'playing:fandom:Voltron', priority: 999)
Filter 5 (group, 'fandom filters', type 'Rejection', tag 'playing:fandom:Cars', priority: 999)