It might be best to do this in multiple stacked PRs if it's going to take more than a few hours.
[x] Migrate BP_FirstPersonGameModeCommander event graph into parent C++ class
[x] For any assets referenced which likely won't change based on other game modes (e.g. SM_USSoldierA reference in BP_FirstPersonGameModeCommander) we can create custom project settings. This is better than having to set properties in BP subclass since custom project settings are stored in .ini file which doesn't require locking. To create custom project settings, create a C++ class UProjectMModuleSettings similar to UE's UMassModuleSettings and create C++ class UProjectMSettings similar to UMassSettings.
It might be best to do this in multiple stacked PRs if it's going to take more than a few hours.