We should define such a type and use it throughout Swift Build, as environment variable names are case-insensitive on Windows and allowing duplicate keys which differ only by case when using a simple [String: String] can lead to assertions being broken in unexpected places.
@rauhul refactored SwiftPM’s version of this type here: swiftlang/swift-package-manager#7684. We might want to take that implementation.
rdar://134664046