what about using an empty array rather than null? or is the idea that an empty array gives an empty collection, but null means no filter? do we need to update the interface to say `= null` too? however that would amount to a BC break i fear.