rpc::readRequestMetadata currently has some inefficiencies, such as scanning the same BSON object 3 times and allocating ErrorInfos on the empty-metadata path. As this is hot code (on the command path) it should be optimized.
As part of this work, the format of ServerSelectionMetadata on the wire will change. Instead of having $readPreference and $secondaryOk be top-level fields of the metadata object, they will be sub-objects of a top-level $ssm object. As such this work needs to get in to rc1, given that we need to support rolling upgrade from rc1 to rc2 (but not rc0 to rc1).