Literal indexes rather than ${number}. A pattern template literal in the
key union becomes a pattern index signature on the filter record, and a
record with an index signature accepts any key when query infers its
const F extends TypedFilterParams<T> — which silently costs every entity
its unknown-key, wrong-key and wrong-type errors, not just the indexed ones.
Literal keys keep the record closed.
Ten is the cap, so a filter can name one of the first ten elements. A
condition on a specific element is in practice a condition on an early one;
beyond that the question is "does any element match", which is $contains.
The expression builder itself has no cap — a higher index compiles and runs,
it just is not offered by the type.
The list indexes a dot path may name.
Literal indexes rather than
${number}. A pattern template literal in the key union becomes a pattern index signature on the filter record, and a record with an index signature accepts any key whenqueryinfers itsconst F extends TypedFilterParams<T>— which silently costs every entity its unknown-key, wrong-key and wrong-type errors, not just the indexed ones. Literal keys keep the record closed.Ten is the cap, so a filter can name one of the first ten elements. A condition on a specific element is in practice a condition on an early one; beyond that the question is "does any element match", which is
$contains. The expression builder itself has no cap — a higher index compiles and runs, it just is not offered by the type.