Move the files with common IDL structs and enums into a new library. So that future code (e.g. SERVER-70754, SERVER-70473, SERVER-70753) can references them from the read and write paths.
Make all the IDL structs have strict: false. The analyzeShardKey command currently specifies strict: true which is bound to lead to upgrade/downgrade issues in the future.
Add helpers for checking the feature flag both without and with ignoring the FCV to avoid having a verbose check (e.g. here) every where the analyze_shard_key code is used.