No matter what we do, we’d have to document it, and people would need to be aware of how exactly it works; there is no path we can take which Just Works. In this light I propose to just document that no translation is done whatsoever apart from surrounding it with double quotes. Then the user has full control over what goes on in the script.

(reflection: the goal could be that strings can be passed literally from the build definition into the main method’s argument array, but is that really achievable?)