If you implement the data types (Lineitem, Customer, etc.) as `extends TupleX<A, B, C, D, ...>`, you can use field positions to define keys instead of `KeySelector` functions.