If the order of calls to `addShardKey()` can change based on the parsing order for fields, that could easily break. Would it be better to define a shard key similar to a compound index at the class level?