Thank you for your feedback.
When we designed SDK, intentionally limit the usage of generic 'not' clause.
Since it has performance drawback and we don't recommend to use it actively.
However it's true now there's conditions can not expressed without generic 'not' since we introduced new clauses like 'in' and geo related.
Would you mind to share the actual use case which requires you to use 'not'?
We assumed that 'not-starts-with', 'not-geo-distance' and 'not-geo-box' is kind of rare cases.
(We understood supporting generic 'not' is useful as long as it is carefully used.)