launchd uses exec() under the hood when you specify ProgramArguments or Program so you must break apart program arguments into separate strings in an array or the command will fail
launchd uses exec() under the hood when you specify ProgramArguments or Program so you must break apart program arguments into separate strings in an array or the command will fail