yeah, i made a filter that does all of that negation. it allows fetch by id, OR fetch by any set of pubkey/tag, THEN a since/until time window filter, AND NOT ids/pubkey/tags and then sort ascending/descending by timestamp
well, to be fair, i wrote the basic part and then i made the AI write the rest for me, with tests.
one has to put some kind of cap on the depth of logic for a relay event filter search i think. everything beyond what i just listed kinda gets into application logic i think. this is part of what i consider to be a domain error of many database query systems also, pushing so much app logic into the query engine. data formats also play a part in this, the generic event format is very nice with the metadata/author/content that can basically put anything inside it... you can even grandfather in metadata using label events, as well, though that kinda has to be kept from getting too deep.