Minimum deployment target conditional compilation

The specific use case I was trying to solve for was compile-time polyfills:

And yes, this would mean potentially a module might have to be recompiled for different minimum deployment targets, but not for different platforms. You would ship the version that is supported at your minimum deployment target.

What this allows is for library authors to support multiple minimum deployment targets using backported polyfills using the same APIs. If your minimum deployment target is iOS 13, you don't compile the polyfill and use the standard library version of Identifiable. If your minimum deployment target is 10, you use the polyfill implementation. Library authors would implement against the SwiftPolyfill Identifiable which is in a package with platform: .iOS(.v10). In that package it would have:

#if platform(iOS(v13))
public typealias Identifiable = Swift.Identifiable
#else 
public protocol Identifiable { ... }
#endif