I want to point out that the package manager DSL was designed without this proposal in mind. It may be possible to design it differently if supporting comma elision was a goal. If Enhanced Variadic Parameters moves forward labeled variadic parameters may also be useful.
For example, it might be possible to re-skin it so:
package = Package(
name: "Paper"
products: [
.executable(name: "tool", targets: ["tool"])
.library(name: "Paper", targets: ["Paper"])
becomes:
package = Package(
name: "Paper"
products: [
tool: .executable(targets: ["tool"])
Paper: .library(targets: ["Paper"])