- The function currently named 'establishShardCursors' is responsible for targeting and splitting/reassembling the pipeline. It does not actually establish any cursors itself; if we are running an aggregation, it delegates to the method currently called 'establishShardCursorsWithoutRetrying', and if we are running an explain then we don't attempt to establish any cursors at all.
- The struct currently called 'EstablishShardCursorsResults' again may or may not actually contain any cursors on return, but will always contain the results of the pipeline targeting. In fact, the variable that currently stores the returned struct in runAggregate is the much more aptly named 'targetingResults'.
Both of these should be renamed to provide a more accurate description of their purpose.