This is largely needed as a way to get a versioned client without requiring everyone to switch to versioned types at once.