Unix commands happily pass around binary streams of any format. The problem is, as you noticed, there is not schema, no uniform (let alone machine-readable) description of accepted &#x2F; emitted formats. Composability is possible but not entirely trivial, often with a dose of `grep` &#x2F; `sed` &#x2F; `cut` between commands.<p>It&#x27;s also pretty hard to pass a <i>function</i> to a Unix command. Either your command supports its own syntax (grep, find), or you make do writing a loop or a temporary file.