When top-level filter keys narrow to KeyNames, also checks if $or blocks
narrow independently. Since DynamoDB ANDs top-level conditions with $or,
a record must satisfy both — so the matching entities are the intersection.
If $or also narrows → intersect with KeyNames. Empty intersection → never[].
When top-level filter keys narrow to
KeyNames, also checks if$orblocks narrow independently. Since DynamoDB ANDs top-level conditions with$or, a record must satisfy both — so the matching entities are the intersection.$oralso narrows → intersect withKeyNames. Empty intersection →never[].$ordoes not narrow → useKeyNamesalone.