If the TargetPlatform is Windows, we shouldn't allow arbitrary (likely invalid) version numbers for the TargetPlatformVersion. So we should have a list of known version numbers, and generate an error if the specified version number is not in the list. The list would likely include the following (and perhaps more):
- 10.0.17763
- 10.0.18362
- 10.0.19041
The list of valid version numbers should also be used to define conditional compilation constants for previous versions of Windows. See the spec and the implementation PR which just needs SupportedTargetPlatform items to be defined appropriately to light up.