I think that a Package.swift change would be something along the lines of what I describe at:
I don't have a strong opinion on the .build
structure - each target would need to be duplicated though - static or dynamic variant.
I agree that it is useful, however, if we build everything for static and only for static, then we cannot build a dynamic library. I do not think that it is reasonable to restrict dynamic library products to non-Windows targets only, so the equitable solution here is to simply drop all support for dynamic library products. I fully agree that this makes the build system something which would be very limiting for many use cases.