def selection(criterion = nil)
      clone.tap do |query|
        if criterion
          criterion.each_pair do |field, value|
            yield(query.selector, field.is_a?(Key) ? field : field.to_s, value)
          end
        end
        query.reset_strategies!
      end
    end
def selection(criterion = nil)
      clone.tap do |query|
        if criterion
          criterion.each_pair do |field, value|
            yield(query.selector, field.is_a?(Key) ? field : field.to_s, value)
          end
        end
        query.reset_strategies!
      end
    end
Take the provided criterion and store it as a selection in the query
 selector.

 @api private

 @example Store the selection.
   selectable.selection({ field: "value" })

 @param [ Hash ] criterion The selection to store.

 @return [ Selectable ] The cloned selectable.

 @since 1.0.0