Unix has gotten pretty far using just text and return codes. But there's no need to be dogmatic about it I guess, it could be nice to pass objects around, rather than text, like Powershell does. Although, their implementation seems quite verbose.
I think to really use something like that, I'd want a well-defined ordering for the fields and the ability to also do something like
variable.1
in addition to
variable.someLongFieldName
This could result in less than obvious scripts, but a shell language also needs to be compact, for interactive usage.