Since Invoke-Interpreter calls many interpreters that are not PowerShell, it would help to have a "lingua franca" to send complex objects.
Luckily, there is JSON.
If the interpreter is not a [ScriptBlock], and the argument is not a [string], it should be converted into JSON.