Switch to a different workspace, creating it if it doesn't already exist.
`SwitchToWorkspace` accepts two optional parameters:
*`name` - the name of the workspace. If omitted, a randomly generated name will be chosen.
*`spawn` - a [SpawnCommand](../SpawnCommand.md) describing the command that should be started in the workspace if it doesn't already exist. If omitted, the default program will be spawned in the newly created workspace.